Я пытаюсь получить итеративный доступ к массиву с использованием индексов и массивов.Следующий пример в значительной степени подводит итог моей проблемы:
x = np.arange(12)
x.shape = (3,2,2)
nspace = np.array([[0,0], [0,1], [1,0], [1,1]])
for it in range(len(nspace)):
x[:,nspace(it)] = np.array([1,1,1])
Если бы все работало так, как я думаю, код вывел бы 4 отдельных массива:
[0,4,8]
[1,5,9]
[2,6,10]
[3,7,11]
Но я получил ошибку,Я понимаю, что мое индексирование неверно, но я не могу понять, как получить желаемый результат.
Важно, чтобы все происходило внутри цикла, потому что я хочу иметь возможность изменять размеры х.
EDIT0: мне нужно общее решение, которое требует.мне написать: пробел [0,0], пробел [0,1] и т. д.
EDIT1: я изменил печать на операцию присваивания, потому что на самом деле нужно назначить результат функции, которую явызов внутри цикла.
EDIT2: я не включил Traceback, потому что я сомневаюсь, что это будет полезно.Во всяком случае, вот оно:
Traceback (most recent call last):
File "<ipython-input-600-50905b8b5c4d>", line 5, in <module>
print(x[:,nspace(it)])
TypeError: 'numpy.ndarray' object is not callable