我有两个数组:一个是母数组,另一个是“过滤数组”。母阵列是2D阵列(大小约为65行x147列)。过滤数组是一个具有母数组每一列的最大值(1行x 147列)的数组。我需要获取最大值的匹配行值。
我尝试使用
for index,k in np.ndenumerate(MotherArr):
for val in FiltArr:
if k == val:
print(index)
但是由于某种原因,我基本上得到了val的打印,之后打印了最后一个索引。
关于如何使它工作的任何想法?
答案 0 :(得分:0)
您可以沿轴取数组的argmax
:
np.random.seed(0)
A = np.random.randint(0, 10, (5, 5))
# array([[5, 0, 3, 3, 7],
# [9, 3, 5, 2, 4],
# [7, 6, 8, 8, 1],
# [6, 7, 7, 8, 1],
# [5, 9, 8, 9, 4]])
maxima = A.max(1)
# array([7, 9, 8, 8, 9])
maxima_args = A.argmax(1)
# array([4, 0, 2, 3, 1], dtype=int64)