Для функции, которую я должен написать снова для CodeSignal, я создаю «пустую» матрицу с numpy, которая называется «result». В течение a для l oop я хочу добавить 1 к определенным элементам этой матрицы нулей:
matrix = [[True, False, False],
[False, True, False],
[False, False, False]]
matrix = np.array(matrix) ## input matrix
(row, col) = matrix.shape
result = np.zeros((row,col), dtype=int) ## made empty matrix of same size
for i in range(0, row):
for j in range(0, col):
mine = matrix[i,j],[i,j]
if mine[0] == True: ##for indices in input matrix where element is called True..
result[i+1,j+1][i+1,j+1] = 1 ##..replace neighbouring elements with 1 (under construction ;) )
print(result)
Моя самая первая проблема возникает с последней частью, заменяя элементы на заданные индексы с другим значением. Например, результат [1,1] [1,1] = 1 Я всегда получаю сообщение об ошибке
TypeError: объект не поддерживает назначение элемента
, и это происходит после установки np.zeros для различных типов объектов - int32, int8, complex, float64 ...
Если я попытаюсь:
Например, результат [1,1] [1,1] == 1
Я получаю:
IndexError: недопустимый индекс для скалярной переменной.
Так как же изменить или добавить элементы в 2d np-массивы по заданным параметрам? c мест?