วิธีแทนที่ค่า nan ด้วยศูนย์ใน numpy
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อแทนที่ค่า NaN ด้วยศูนย์ใน NumPy:
my_array[np. isnan (my_array)] = 0
ไวยากรณ์นี้ใช้ได้กับทั้งเมทริกซ์และอาร์เรย์
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: แทนที่ค่า NaN ด้วยศูนย์ในอาร์เรย์ NumPy
รหัสต่อไปนี้แสดงวิธีแทนที่ค่า NaN ทั้งหมดด้วยศูนย์ในอาร์เรย์ NumPy:
import numpy as np
#create array of data
my_array = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#replace nan values with zero in array
my_array[np. isnan (my_array)] = 0
#view updated array
print (my_array)
[4.0.6.0.10.11.14.19.22.]
โปรดทราบว่าค่า NaN ทั้งสองในตารางเดิมถูกแทนที่ด้วยศูนย์
ตัวอย่างที่ 2: แทนที่ค่า NaN ด้วยศูนย์ในเมทริกซ์ NumPy
สมมติว่าเรามีเมทริกซ์ NumPy ดังต่อไปนี้:
import numpy as np
#create NumPy matrix
my_matrix = np. matrix ( np.array ([np.nan,4,3,np.nan,8,12]). reshape ((3,2)))
#view NumPy matrix
print (my_matrix)
[[nah 4.]
[ 3. nah]
[8.12.]]
เราสามารถใช้โค้ดต่อไปนี้เพื่อแทนที่ค่า NaN ทั้งหมดด้วยศูนย์ในเมทริกซ์ NumPy:
#replace nan values with zero in matrix
my_matrix[np. isnan (my_matrix)] = 0
#view updated array
print (my_matrix)
[[ 0. 4.]
[ 30.]
[8.12.]]
โปรดทราบว่าค่า NaN ทั้งสองจากเมทริกซ์ดั้งเดิมถูกแทนที่ด้วยศูนย์
ที่เกี่ยวข้อง: วิธีลบค่า NaN ออกจากอาร์เรย์ NumPy
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีทำงานทั่วไปอื่น ๆ ใน NumPy:
วิธีเติมอาร์เรย์ NumPy ด้วยค่า
วิธีลบองค์ประกอบเฉพาะออกจากอาร์เรย์ NumPy
วิธีแทนที่องค์ประกอบในอาร์เรย์ NumPy
วิธีรับแถวเฉพาะจากอาร์เรย์ NumPy