【发布时间】:2017-12-23 21:46:43
【问题描述】:
我试图在数组“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
【问题讨论】:
-
out_pos在开始时是一个空列表,因此所有索引都超出了范围。你可能想要append,但我不确定我是否清楚你在做什么。 -
除上一条注释外:将
out_pos初始化为out_pos=[[]] * len(out_der)。 -
也就是说错误来自
out_pos[i] =。与numpy无关。 -
@roganjosh 它不允许我使用
append,我认为因为它不是一个列表
标签: python arrays indexing index-error