首页 > 解决方案 > 在不带循环的情况下替换 numpy 数组的每一行中的最大值

问题描述

我有一个像这样的数组,对其进行了重新整形,并且需要将每行中的最大值(所以axis = 1?)替换为0。我不能使用for循环。

x = np.random.uniform(1.0, 21.0, 20)
print("Original array: ", x)

xMatrix = x.reshape(4, 5)
print(xMatrix)

maxNum = np.amax(xMatrix, axis=1)

所以,maxNum 显然只给了我每一行的最大值。但是,如果不简单地遍历数组,我将如何实际替换这些值呢?

标签: pythonnumpy

解决方案


尝试 np.where 结合 np.isin :

np.where(np.isin(xMatrix,maxNum), 0, xMatrix)

推荐阅读