Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แทนที่ infinity ด้วยตัวเลขจำกัดขนาด แต่เติม NaN ด้วยค่าที่กำหนดใน Python

เพื่อแทนที่ 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]