我用命令做了一个大小为6*6*51的numpy数组。
matrix = np.zeros((6,6,51))
但是当我写一个循环,让一个6元素的数组被放置在 matrix[i][:][j]
它说
ValueError: 无法将输入数组从形状(6)广播到形状(51)。
我到底做错了什么?
import numpy as np
a = np.zeros((6,6,51))
你的索引不正确。你的订阅应该包括所有的维度。
a[i][:]
基本上与 a[i]
然后 j
在 a[i][:][j]
是对第二个维度的索引。
In [14]: b = a[1][:]
In [15]: b.shape
Out[15]: (6, 51)
In [16]: c = a[1][:][1]
In [17]: c.shape
Out[17]: (51,)
使用 a[i,:,j]
的订阅。
In [20]: a[1,:,1] = np.arange(6)
In [21]: a[1,:,1]
Out[21]: array([ 0., 1., 2., 3., 4., 5.])