零(按行)“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
我有一个 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