[英]Change certain values in 2D numpy array based on values in 1D array without for-loop
[英]Change values of a 1D numpy array based on certain condition
很基本的问题:
假设我有一个包含5个元素的一维numpy数组(A):
A = np.array([ -4.0, 5.0, -3.5, 5.4, -5.9])
我需要将A的所有小于零的元素加5。 没有for循环的numpy方法是什么?
可以使用mask来完成:
A[A < 0] += 5
它的工作方式是-表达式A < 0
返回一个布尔数组。 每个单元格对应于应用于匹配单元格的谓词。 在当前示例中:
A < 0 # [ True False True False True]
然后,该操作仅应用于与谓词匹配的单元格。 因此,在此示例中,它仅适用于True
单元。
我找到了另一个答案:
A = np.where(A < 0, A + 5, A)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.