Python 根据特定条件更改1D numpy数组的值

Python 根据特定条件更改1D numpy数组的值,python,numpy,vectorization,Python,Numpy,Vectorization,非常基本的问题: 假设我有一个包含5个元素的一维numpy数组(a): A=np.array([-4.0,5.0,-3.5,5.4,-5.9]) 我需要在A中所有小于零的元素上加5。没有for循环的numpy方法是什么?可以使用掩码: A[A < 0] += 5 A[A

非常基本的问题:

假设我有一个包含5个元素的一维numpy数组(a):

A=np.array([-4.0,5.0,-3.5,5.4,-5.9])


我需要在A中所有小于零的元素上加5。没有for循环的numpy方法是什么?

可以使用掩码:

A[A < 0] += 5
A[A<0]+=5
它的工作方式是-表达式
A<0
返回一个布尔数组。每个单元格对应于应用于匹配单元格的谓词。在当前示例中:

A < 0  # [ True False  True False  True]  
A<0#[True-False-True]

然后,该操作仅应用于与谓词匹配的单元格。因此,在本例中,它仅适用于
True
单元格。

可以使用掩码:

A[A < 0] += 5
A[A<0]+=5
它的工作方式是-表达式
A<0
返回一个布尔数组。每个单元格对应于应用于匹配单元格的谓词。在当前示例中:

A < 0  # [ True False  True False  True]  
A<0#[True-False-True]

然后,该操作仅应用于与谓词匹配的单元格。因此,在本例中,它仅适用于
True
单元格。

我找到了另一个答案:


A=np。其中(A<0,A+5,A)
我找到了另一个答案:

A=np.其中(A<0,A+5,A)