前言
最近因為工作的需求,要處理兩個矩陣的點除,得到結果後,再作其他的計算,發現有些內建的函式不work;檢視得到的資料,發現有很多nan和inf,導致python的基本函式執行不了,這是因為在除的過程中分母出現0的緣故。為了將結果能夠被python其他函式處理,尤其numpy庫,需要將nan,inf轉為python所能識別的型別。
這裡將nan,inf替換0作程式設計客棧為例子。下面來看看詳細的介紹:
1. **
import numpy as np
a = np.array([[np.nan, np.nan, 1, 2], [np.inf, np.inf, 3, 4], [1, 1, 1, 1], [2, 2, 2, 2]])
print a
where_are_nan = np.isnan(a)
where_are_inf = np.isinf(a)
a[where_are_nan] = 0
a[where_are_inf] = 0
print a
print np.mean程式設計客棧(a)
2. 執行結果
[[ nan nan 1. 2.]
[ inf inf 3. 4.]
[ 1. 1. 1. 1.]
[ 2. 2. 2. 2.]]
[[ 0. 0. 1. 2.]
[ 0. 0. 3. 4.]
[ 1. 1. 1. 1.]
[ 2. 2. 2. 2.]]
1.375
總結本文標題: python中nan與inf轉為特定數字方法示例
本文位址: /jiaoben/python/190539.html
python之NAN和INF值處理
首先我們要知道這兩個英文單詞代表的什麼意思 nan not a number,不是乙個數字的意思,但是他是屬於浮點型別的,所以想要進行資料操作的時候需要注意他的型別。inf infinity,代表的是無窮大的意思,也是屬於浮點型別。np.inf表示正無窮大,np.inf表示負無窮大,一般在出現除數為...
linux系統c c 中的inf和nan
測試環境 ubuntu16.04 inf表示無窮大的數。nan表示 not a number 不是乙個整數。判斷表示式的結果是否為inf include include intmain else 方式二if isinf a else float b b nan std cout b endl if ...
python中nan的比較
在用numpy.sum等方法計算列表時,當列表中無目標元素,得到的為空值nan。然而不同於none,它無法用 進行判斷。nan not a number 在數學表示上表示乙個無法表示的數,這裡一般還會有另乙個表述inf,inf和nan的不同在於,inf是乙個超過浮點表示範圍的浮點數 其本質仍然是乙個...