尝试查找数组值的位置时的索引错误

时间:2017-07-18 20:44:07

标签: python arrays indexing index-error

我试图在数组“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 

2 个答案:

答案 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=[]

创建后