📜  Python中的numpy.nan_to_num

📅  最后修改于: 2020-06-28 06:35:42             🧑  作者: Mango

numpy.nan_to_num()当我们要用零替换nan(Not A Number)并将inf替换为有限数字时,可以使用函数。它返回一个非常大的数(正)无穷大和一个很小(或负数)的负无穷大。

语法:numpy.nan_to_num(arr, copy=True)

参数:

arr: [array_like]输入数据。
copy: [bool,可选]是创建arr的副本(True)还是就地替换值(False)。仅当强制转换为数组不需要副本时才执行就地操作。默认值为True。

返回: [ndarray]具有与arr相同的形状和arr中元素的dtype的形状的精度最高的新数组。如果arr不精确,则将NaN替换为零,并将无穷大(-infinity)替换为适合输出dtype的最大(最小或最大负数)浮点值。如果arr不精确,则返回arr的副本。

代码1:

# 解释numpy.nan_to_num()函数的Python程序 
  
import numpy as geek 
in_num = geek.nan 
  
print ("输入号码 : ", in_num) 
    
out_num = geek.nan_to_num(in_num)  
print ("输出数字 : ", out_num) 

输出:

输入号码 :  nan
输出数字 :  0.0

代码2:

# 解释numpy.nan_to_num函数的Python程序 
  
import numpy as geek 
  
in_arr = geek.array([[2, geek.inf, 2], [2, 2, geek.nan]]) 
   
print ("输入数组 : ", in_arr)  
    
out_arr = geek.nan_to_num(in_arr)  
print ("输出数组: ", out_arr)  

输出:

输入数组 :  [[  2.  inf   2.]
 [  2.   2.  nan]]
输出数组:  [[  2.00000000e+000   1.79769313e+308   2.00000000e+000]
 [  2.00000000e+000   2.00000000e+000   0.00000000e+000]]

代码3:

# 解释numpy.nan_to_num函数的Python程序 
  
import numpy as geek 
  
in_arr = geek.array([[2, 2, 2], [2, 2, 6]]) 
   
print ("输入数组 : ", in_arr)  
    
out_arr = geek.nan_to_num(in_arr)  
print ("输出数组: ", out_arr) 

输出:

输入数组 :  输入数组 :  [[2 2 2]
 [2 2 6]]
输出数组:  [[2 2 2]
 [2 2 6]]