Python - NumPy陣列中用零替換負值
在本文中,我們將瞭解如何用零替換負值。如果我們談論資料分析,那麼處理負值是確保有意義的計算的關鍵步驟。因此,在這裡您將學習各種方法,我們可以用這些方法將負值替換為0。
方法1. 使用遍歷和列表推導式。
示例
import numpy as np
arr = np.array([-12, 32, -34, 42, -53, 88])
arr = [0 if x < 0 else x for x in arr]
arr = np.array(arr)
print("array with replaced values is: ", arr)
輸出
array with replaced values is: [ 0 32 0 42 0 88]
解釋
在上面的示例中,我們使用列表推導式方法遍歷NumPy陣列arr中的每個元素。在遍歷陣列時,我們檢查當前值是否為負(x<0),如果是,則將其替換為零,否則我們將不更改它。修改後,我們將陣列轉換回NumPy陣列。
方法2. 使用Numpy.vectorize()。
示例
import numpy as np
arr = np.array([-12, 32, -34, 42, -53, 88])
def replace_negative_value(x):
return 0 if x < 0 else x
replace_func = np.vectorize(replace_negative_value)
arr = replace_func(arr)
print("array with replaced values is: ", arr)
輸出
array with replaced values is: [ 0 32 0 42 0 88]
解釋
在上面的示例中,我們使用了函式numpy.vectorize(),它允許我們對NumPy陣列的每個元素應用自定義函式。我們定義了一個函式replace_negative_value(),它將用零替換負值。然後使用np.vectorize()方法,我們建立了該函式的向量化版本,以將其應用於陣列。
方法3. 使用Numpy.clip()。
示例
import numpy as np
arr = np.array([-12, 32, -34, 42, -53, 88])
arr = np.clip(arr, 0, None)
print("array with replaced values is: ", arr)
輸出
array with replaced values is: [ 0 32 0 42 0 88]
解釋
在上面的示例中,我們使用了numpy.clip()方法,我們可以用它將值限制在任何定義的範圍內。在我們的程式中,我們將值0定義為下界,並將None定義為上界,因此它可以接受任何較大的正值,但在負值的情況下,它將把負值替換為0。
方法4. 使用Numpy.where()。
示例
import numpy as np
arr = np.array([-12, 32, -34, 42, -53, 88])
arr = np.where(arr < 0, 0, arr)
print("array with replaced values is: ", arr)
輸出
array with replaced values is: [ 0 32 0 42 0 88]
解釋
在上面的示例中,我們使用了numpy.where()方法,我們可以用它提供任何條件替換方法。在我們的程式中,我們提供了條件arr<0,並且我們在該條件為真的情況下用0替換了陣列的值。如果條件不滿足,則值將保持不變。
方法5. 使用Numpy.maximum()。
示例
import numpy as np
arr = np.array([-12, 32, -34, 42, -53, 88])
arr = np.maximum(arr, 0)
print("array with replaced values is: ", arr)
輸出
array with replaced values is: [ 0 32 0 42 0 88]
解釋
在上面的示例中,我們使用了函式numpy.maximum(),它比較兩個陣列的元素並返回其中的最大值。在我們的程式中,我們正在將陣列的每個元素與0進行比較,並選擇最大值,這肯定將負值替換為0,因為0將是最大值,因此函式將返回0,並且負值將被0替換。
因此,我們看到了不同的方法,我們可以用這些方法將陣列的任何負值替換為0。在本文中,我們瞭解了諸如遍歷、列表推導式、數學運算等方法,這些方法為我們提供了有效替換負值的方法。您可以選擇最符合您的需求和可讀性的任何方法。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP