Cравнение элементов двумерной матрицы Python
следующий вопрос: как в python с NumPy пройтись по каждому элементу двумерной матрицы, сравнив его с каким-то значением? Мой код выглядит так:
print("Укажите размер массива, столбцов:")
n = int(input())
print("Укажите размер массива, строк:")
m = int(input())
universe = np.random.randint(2, size=(m, n))
print (universe)
for row in universe:
for x in row:
if universe[[row], [x]] == 1:
j += 1
print (j)
В моем случае выводит ошибку:
if universe[[row], [x]] == 1:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Подскажите пожалуйста, как сделать правильно, спасибо.
Ответы (2 шт):
Автор решения: Кирилл Малышев
→ Ссылка
Сравнить можно так:
universe == 1
В результате получится массив того же размера, содержащий значения типа bool, обозначающие выполнение или невыполнение условия.
Подсчитать количество вхождений можно так:
number_of_ones = np.count_nonzero(universe == 1)
Автор решения: MarianD
→ Ссылка
Вместо
for row in universe:
for x in row:
if universe[[row], [x]] == 1:
примените
for row in range(universe.shape[0]):
for x in range(universe.shape[1]):
if universe[row, x] == 1: