本文目錄一覽:
python中怎麼把數據中inf轉化為na
在使用numpy數組的過程中時常會出現nan或者inf的元素,可能會造成數值計算時的一些錯誤。這裡提供一個numpy庫函數的用法,使nan和inf能夠最簡單地轉換成相應的數值。
numpy.nan_to_num(x):
使用0代替數組x中的nan元素,使用有限的數字代替inf元素
使用範例:
import numpy as np a = np.array([[np.nan,np.inf],\… [-np.nan,-np.inf]]) a
array([[ nan, inf],
[ nan, -inf]]) np.nan_to_num(a)
array([[ 0.00000000e+000, 1.79769313e+308],
[ 0.00000000e+000, -1.79769313e+308]])123456789
和此類問題相關的還有一組判斷用函數,包括:
isinf
isneginf
isposinf
isnan
isfinite
使用方法也很簡單,以isnan舉例說明:
import numpy as np np.isnan(np.array([[1, np.nan, np.inf],\… [np.nan, -np.inf, -0.25]]))
array([[False, True, False],
[ True, False, False]], dtype=bool)
pythoninf怎麼引入
引入步驟如下。
1、首先在PyCharm軟體中,打開一個Python項目。
2、在Python項目中,新建並打開一個空白的python文件。
3、在python文件編輯區中,輸入:importcmath,導入cmath模塊。
認識python中的inf和nan
認識python中的inf和nan
python中的正無窮或負無窮,使用float(“inf”)或float(“-inf”)來表示。
這裡有點特殊,寫成:float(“inf”),float(“INF”)或者float(‘Inf’)都是可以的。
當涉及 和 比較時,所有數都比無窮小float(“-inf”)大,所有數都比無窮大float(“inf”)小。
相等比較時,float(“+inf”)與float(“+inf”)、float(“inf”)三者相等。即:
同樣地,float(“-inf”) == float(“-inf”) 返回也是True。
簡單的加,減,乘操作,還是會返回無窮。
特別地,0 * float(‘inf’) 結果為:nan
float(‘inf’) / float(‘inf’) 結果為:nan
float(‘inf’) – float(‘inf’) 結果為:nan
float(‘-inf’) – float(‘-inf’) 結果也為:nan
nan代表Not A Number(不是一個數),它並不等於0
因為nan不是一個數,所以相關計算都無法得到數字。
所有涉及nan的操作,返回的都是nan。
結果都是:nan
比較操作時,返回的都是False
特別注意兩個float(‘nan’)並不相等!
python中可以用math.isinf()與math.isnan()來判斷數據是否為inf或nan。
numpy中也有相類似的方法可用來判斷數據。
動手測試題:
0 / float(‘inf’) == 0 / float(‘-inf’) 結果是True 還是False?
參考資料:
Python 關於正負無窮float(『inf』)的一些用法
Stackoverflow.com上的問答:What is inf and nan?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/157278.html