วิธีแทนที่ค่า 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *