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

时间:2022-10-17 19:05:54

前言

最近因为工作的需求,要处理两个矩阵的点除,得到结果后,再作其他的计算,发现有些内置的函数不work;查看得到的数据,发现有很多naninf,导致Python的基本函数运行不了,这是因为在除的过程中分母出现0的缘故。为了将结果能够被python其他函数处理,尤其numpy库,需要将nan,inf转为python所能识别的类型。

这里将nan,inf替换0作为例子。下面来看看详细的介绍:

1. 代码

?
1
2
3
4
5
6
7
8
9
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. 运行结果

?
1
2
3
4
5
6
7
8
9
[[ 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

总结

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

原文链接:http://blog.csdn.net/helei001/article/details/53066317