非常基本的問題:更改值
假設我有含有5個元件1D numpy的陣列(A):
A = np.array([ -4.0, 5.0, -3.5, 5.4, -5.9])
我需要添加, 5給A中小於零的所有元素。什麼是無法循環的方式來做到這一點?
非常基本的問題:更改值
假設我有含有5個元件1D numpy的陣列(A):
A = np.array([ -4.0, 5.0, -3.5, 5.4, -5.9])
我需要添加, 5給A中小於零的所有元素。什麼是無法循環的方式來做到這一點?
它可以使用掩模來完成:
A[A < 0] += 5
它的工作方式是 - A < 0
返回一個布爾值數組表達。每個單元格對應於匹配單元格上應用的謂詞。在當前示例中:
A < 0 # [ True False True False True]
然後,該操作僅應用於與謂詞相匹配的單元格。所以在這個例子中,它僅適用於True
單元。
我發現了另一個答案:
A = np.where(A < 0, A + 5, A)
是啊,工作。謝謝。 –