you*_*rja 0 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
Run Code Online (Sandbox Code Playgroud)
它的工作方式是 - 表达式A < 0返回一个布尔数组。每个单元格对应于应用于匹配单元格的谓词。在当前示例中:
A < 0 # [ True False True False True]
Run Code Online (Sandbox Code Playgroud)
然后,该操作仅应用于与谓词匹配的单元格。所以在这个例子中,它只适用于True单元格。