เพื่อแทนที่ NaN ด้วยศูนย์ และ infinity ด้วยตัวเลขจำกัดขนาด (large finite numbers) ให้ใช้ numpy.nan_to_num() พารามิเตอร์ nan ระบุค่าเติมสำหรับ NaN (ค่าเริ่มต้น 0.0) posinf และ neginf สำหรับ infinity บวกและลบ
ขั้นตอนการใช้งาน
import numpy as np
สร้างอาร์เรย์มี inf, -inf, NaN
arr = np.array([np.inf, -np.inf, np.nan, -128, 128])
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
print("\nShape of our Array object...\n", arr.shape)
แทนที่ NaN ด้วย 11111 และ infinity ด้วยค่ามาตรฐาน
print("\nResult...\n", np.nan_to_num(arr, nan=11111))
โค้ดตัวอย่างสมบูรณ์
import numpy as np
arr = np.array([np.inf, -np.inf, np.nan, -128, 128])
print("Our Array...\n", arr)
print("\nDimensions of our Array...\n", arr.ndim)
print("\nDatatype of our Array object...\n", arr.dtype)
print("\nShape of our Array object...\n", arr.shape)
print("\nResult...\n", np.nan_to_num(arr, nan=11111))
ผลลัพธ์ที่คาดหวัง
Our Array... [ inf -inf nan -128. 128.] Dimensions of our Array... 1 Datatype of our Array object... float64 Shape of our Array object... (5,) Result... [ 1.79769313e+308 -1.79769313e+308 1.11110000e+004 -1.28000000e+002 1.28000000e+002]