我有2D narrays的集合,这取决于两个整数索引,说p1和p2,与相同形状的每个矩阵。
然后我需要找到,对于每对(P1,P2),该基质的最大值和这些最大值的索引。 一个平凡的,虽然速度慢,办法做到这一点会是做这样的事情
import numpy as np
import itertools
range1=range(1,10)
range2=range(1,20)
for p1,p2 in itertools.product(range1,range1):
mat=np.random.rand(10,10)
index=np.unravel_index(mat.argmax(), mat.shape)
m=mat[index]
print m, index
我的应用程序,这是不幸的是太慢了,我想由于双for循环使用。 因此,我试图包在4维阵列的一切(说BigMatrix),其中前两个坐标是索引P1,P2,和其他2是矩阵的坐标。
该np.amax命令
>>res=np.amax(BigMatrix,axis=(2,3))
>>res.shape
(10,20)
>>res[p1,p2]==np.amax(BigMatrix[p1,p2,:,:])
True
按预期方式工作,因为它遍历2和3轴。 我怎样才能做同样的np.argmax? 请记住,速度是很重要的。
非常感谢你提前,
恩佐