前言
最近因為工作的需求,要處理兩個矩陣的點除,得到結果后,再作其他的計算,發現有些內置的函數不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
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點
疑難解答