Python中的 numpy.nan_to_num()
numpy.nan_to_num()
函数用于将 nan(Not A Number) 替换为零和 inf 替换为数组中的有限数。它以非常大的数字返回(正)无穷大,以非常小的(或负)数字返回负无穷大。
Syntax : numpy.nan_to_num(arr, copy=True)
Parameters :
arr : [array_like] Input data.
copy : [bool, optional] Whether to create a copy of arr (True) or to replace values in-place (False). The in-place operation only occurs if casting to an array does not require a copy. Default is True.
Return : [ndarray] New Array with the same shape as arr and dtype of the element in arr with the greatest precision. If arr is inexact, then NaN is replaced by zero, and infinity (-infinity) is replaced by the largest (smallest or most negative) floating point value that fits in the output dtype. If arr is not inexact, then a copy of arr is returned.
代码#1:工作
# Python program explaining
# numpy.nan_to_num() function
import numpy as geek
in_num = geek.nan
print ("Input number : ", in_num)
out_num = geek.nan_to_num(in_num)
print ("output number : ", out_num)
输出 :
Input number : nan
output number : 0.0
代码#2:
# Python program explaining
# numpy.nan_to_num function
import numpy as geek
in_arr = geek.array([[2, geek.inf, 2], [2, 2, geek.nan]])
print ("Input array : ", in_arr)
out_arr = geek.nan_to_num(in_arr)
print ("output array: ", out_arr)
输出 :
Input array : [[ 2. inf 2.]
[ 2. 2. nan]]
output array: [[ 2.00000000e+000 1.79769313e+308 2.00000000e+000]
[ 2.00000000e+000 2.00000000e+000 0.00000000e+000]]
代码#3:
# Python program explaining
# numpy.nan_to_num function
import numpy as geek
in_arr = geek.array([[2, 2, 2], [2, 2, 6]])
print ("Input array : ", in_arr)
out_arr = geek.nan_to_num(in_arr)
print ("Output array: ", out_arr)
输出 :
Input array : Input array : [[2 2 2]
[2 2 6]]
Output array: [[2 2 2]
[2 2 6]]