Python 根据特定条件更改1D numpy数组的值
非常基本的问题: 假设我有一个包含5个元素的一维numpy数组(a):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
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)