Python 在多维数组上使用numpy.argmax()
我有一个4维数组,即,Python 在多维数组上使用numpy.argmax(),python,indexing,numpy,closest,Python,Indexing,Numpy,Closest,我有一个4维数组,即,data.shape=(20,30,33288)。我使用 index = abs(data - n).argmin(axis = 1), so index.shape = (20,33,288) with the indices varying. 我想将data[index]=“values”与values.shape=(20,33288)一起使用,但是data[index]返回的错误“索引(8)超出范围(0如果我理解正确,这应该可以: numpy.put(data,
data.shape=(20,30,33288)
。我使用
index = abs(data - n).argmin(axis = 1), so
index.shape = (20,33,288) with the indices varying.
我想将
data[index]=“values”
与values.shape=(20,33288)
一起使用,但是data[index]
返回的错误“索引(8)超出范围(0如果我理解正确,这应该可以:
numpy.put(data, index, values)
我今天学到了一些新东西,谢谢。您应该能够使用
numpy.index()
访问index
索引的最大值:
谢谢你的回答。我没有“值”,所以我不认为我可以使用numpy.put。我相信斯文的答案会起作用。当你不知道ndim时也有答案吗?@AndreasMueller:是的,使用
tup[:axis]+(index,)+tup[axis:
作为数据的索引,其中tup
是numpy.index返回的元组()
。
numpy.put(data, index, values)
x, z, t = numpy.indices(index.shape)
data[x, index, z, t]