我试图在数组“out_der”中找到“out_max”中每个元素的位置。我想将每个值的位置的索引存储在一个名为“out_pos”的数组中。 “out_der”是400x300x60x27阵列,“out_max”是400x300x60阵列。 “out_pos”也应该是400x300x60阵列。我尝试将“out_der”转换为列表并使用.index()
,但这不起作用(因为列表只有400个元素)。这是我目前的尝试:
INPUT:
out_max=[]
out_pos=[]
out_max=np.amax(out_der,axis=3)
for i in range(0,len(out_der)-1):
out_pos[i]=np.where(out_der==out_max[i])[0]
但是我收到了这个错误:
输出:
18 for i in range(0,len(out_der)-1):
---> 19 out_pos[i]=np.where(out_der==out_max[i])[0]
IndexError: list assignment index out of range
答案 0 :(得分:0)
我认为这是因为你初始化了1D数组,你需要初始化out_max和out_pos = np.empty((400,300,60))
答案 1 :(得分:0)
你说
“out_pos”也应该是400x300x60阵列
但是你用
声明了它 XmlSerializer
。
这使得它成为1维0长度列表。
要创建一个400x300x60阵列,并将所有值初始化为0,请使用
set
。
如果您希望数组中的特定值不为零,则可以使用
out_pos=[]
。