零(按行)“numpy”数组的元素小于给定向量的值

Zero (row-wise) a `numpy` array's elements than are less than the values of a given vector

我有一个 numpy 数组,例如

import numpy as np    
A = np.exp(np.random.randn(3,10))

即数组

array([[ 1.17164655,  1.39153953,  0.68628548,  0.1051013 ],
       [ 0.45604269,  2.21059251,  1.79624195,  0.37553947],
       [ 1.03063907,  0.28035114,  1.70371105,  3.66090236]])

我计算行的最大值如下

np.max(A, axis=1)
array([ 1.39153953,  2.21059251,  3.66090236])

我想将 A 的元素归零,这些元素的值小于相应行最大值的分数。例如,对于上面的例子,如果我们将这个分数设置为 0.9,我想将以下元素归零:

第1行:将小于0.9 * maximum = 1.25238557的元素归零

第2行:将小于0.9 * maximum = 1.98953326的元素归零

第3行:将小于0.9 * maximum = 3.29481212的元素归零

我查看了numpy的文档,但我没有运气。我也试过

A < np.max(A, axis=1)

我希望它能工作,但它没有。

使用 keepdims 参数保留长度为 1 的轴而不是移除折叠轴,因此轴与广播的原始形状对齐:

A[A < 0.9*np.amax(A, axis=1, keepdims=True)] = 0