Python快速轉換numpy數組中Nan和Inf的方法

  • 2019 年 10 月 11 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_36670529/article/details/101755250

在使用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]])

和此類問題相關的還有一組判斷用函數,包括:

  • 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)

Tags: