python中nan与inf转为特定数字方法示例

1003次阅读  |  发布于5年以前

前言

最近因为工作的需求,要处理两个矩阵的点除,得到结果后,再作其他的计算,发现有些内置的函数不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 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8