1

我试图在数组“out_der”中找到“out_max”中每个元素的位置。我想将每个值位置的索引存储在一个名为“out_pos”的数组中。“out_der”是一个 400x300x60x27 数组,“out_max”是一个 400x300x60 数组。“out_pos”也应该是一个 400x300x60 的数组。我尝试将“out_der”转换为列表并使用.index(),但这不起作用(因为列表只有 400 个元素)。这是我目前的尝试:

输入:

    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 
4

2 回答 2

0

我认为这是因为您初始化了需要初始化 out_max 和 out_pos = np.empty((400,300,60)) 的一维数组

于 2017-07-18T20:52:10.570 回答
0

你说

“out_pos”也应该是一个 400x300x60 数组

但你是用

out_pos=[].

这使其成为一维 0 长度列表。

要创建一个所有值都初始化为 0 的 400x300x60 数组,请使用

out_pos = np.zeros((400,300,60)).

如果您希望数组中的特定值不为零,则可以使用

out_pos.fill(value)

创建它之后。

于 2017-07-18T20:52:42.007 回答