如何解决使用运算符和迭代 Numpy Python 修改数组
函数 a[a.size - (a >= 0)[::-1].argmax():] = 0
如果数组等于或小于 0,则将 0 分配给数组,它也将 0 分配给它后面的数组。在示例 a
中,该函数工作正常,它将 0 分配给第三个元素,直到最后一个元素。但是在示例 b
中,即使初始值为负,它也不会这样做。我怎样才能修改这个函数,让它给我想要的结果。
示例 A
a = np.array([[ 123.7 131.1 -4578.2 -4579.1 -4520.1 -4561.3 -4490.9 -4498.5 -4513.8
-4550.9]])
a[a.size - (a >= 0)[::-1].argmax():] = 0
Output = [123.7 131.1 0. 0. 0. 0. 0. 0. 0. 0. ]
示例 B
b = np.array([-570.,-593.37,-286.59771,-264.24308862])
b[b.size - (b >= 0)[::-1].argmax():] = 0
Output = [-570.,-264.24308862]
Desired Output = [0,0]
解决方法
您可以使用类似的方法:
b[(b>=0).argmin():] = 0
(它也适用于 a
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。