【发布时间】:2020-10-04 23:12:28
【问题描述】:
我正在试验 Numpy 功能,并想知道是否有一种方法可以实现所解释的所需行为。 给定一个如下所示的numpy数组
array = np.array([[1,3,3],[6,7,6],[9,9,4]])
print(array)
来自print(array)的输出
[[1 3 3]
[6 7 6]
[9 9 4]]
我得到了每一行的最大值
max_array = array.max(axis=1,keepdims=1)
print(max_array)
来自print(max_array)的输出
[[3]
[7]
[9]]
我正在使用下面的代码对数组中的所有最大元素应用掩码
masked_array = np.ma.masked_equal(array,max_array)
print(masked_array)
打印输出(masked_array)
[[1 -- --]
[6 -- 6]
[-- -- 4]]
现在我已经屏蔽了数组,我想对数组中的非最大元素执行操作,例如乘以 3,如下面的代码所示
mul_array= np.multiply(masked_array,3)
print(mul_array)
来自print(mul_array)的输出
[[3 -- --]
[18 -- 18]
[-- -- 12]]
我想在 max_array 中插入之前在 mul_array 中相同位置屏蔽的最大元素,但我找不到任何东西来实现所需的行为。下面是我预期的矩阵。我想问一下是否有任何 Numpy 操作来实现所需的行为
期望的输出
[[3 3 3]
[18 7 18]
[9 9 12]]
感谢您的帮助!
【问题讨论】:
-
欢迎来到 SO。这不是讨论论坛或教程。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。
-
@wwii 感谢您推荐资源。我已经更新了我的帖子。请让我知道是否仍然缺少可以更新以满足标准的内容
-
np.ma.masked_equal(a,b)-a和b是什么? -
对不起,这是我的错。我忘了用数组和 max_array 替换 a 和 b。我已经更新了我的帖子。
标签: python numpy data-science