2017-09-03 44 views
0

非常基本的問題:更改值

假設我有含有5個元件1D numpy的陣列(A):

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

我需要添加, 5給A中小於零的所有元素。什麼是無法循環的方式來做到這一點?

回答

4

它可以使用掩模來完成:

A[A < 0] += 5 

它的工作方式是 - A < 0返回一個布爾值數組表達。每個單元格對應於匹配單元格上應用的謂詞。在當前示例中:

A < 0 # [ True False True False True] 

然後,該操作僅應用於與謂詞相匹配的單元格。所以在這個例子中,它僅適用於True單元。

+0

是啊,工作。謝謝。 –

0

我發現了另一個答案:

A = np.where(A < 0, A + 5, A)