Не могу обратиться к элементу матрицы для добавления её в массив python
# В матрице найти отрицательные элементы, сформировать из них новый массив.
# Вывести размер полученного массива
import random as rnd
import numpy as np
n = 0
i = 0
arr1 = np.matrix([[rnd.randrange(-2, 5), rnd.randrange(-2, 5)],
[rnd.randrange(-2, 5), rnd.randrange(-2, 5)]])
result = []
for n in range(2):
for i in range(2):
if arr1[[n], [i]] < 0:
result = [result.append(arr1[[n], [i]])]
print(result)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Как говорится "да тут всю систему надо менять!" Правильная работа с Numpy будет выглядеть примерно так:
import numpy as np
arr1 = np.random.randint(-2, 5, (2, 2))
print(arr1)
result = arr1[arr1 < 0]
print(*result.shape)
Пример вывода:
[[-1 1]
[-1 4]]
2
Что касается вашего кода:
- модуль
randomне нужен, вы можете получить случайную матрицу с помощью самогоnumpyгораздо проще и быстрее - метод
matrixустарел, используйте универсальныйarray - в
numpyциклы обычно не нужны, можно сразу все элементы проверить на нужное условие и выбрать их - метод списка
appendвозвращаетNone, не нужно этотNoneприсваивать обратно в список (да и список тут вообще не нужен)