繁体   English   中英

根据特定条件更改一维numpy数组的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM