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

yipeiwu_com7年前Python基础

前言

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

相关文章

Python后台开发Django的教程详解(启动)

Python后台开发Django的教程详解(启动)

Django版本为:2.1.7 Python的web框架,MTV思想 MVC Model(模板文件,数据库操作)  view(视图模板文件  )controller(...

Python安装模块的常见问题及解决方法

1、error: command ‘x86_64-linux-gnu-gcc' failed with exit status 解决办法: # Python 3 $ sudo apt...

Python2和Python3.6环境解决共存问题

Linux下安装Python3.6和第三方库 /post/150478.htm 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依...

python开启debug模式的方法

python开启debug模式的代码如下所示: import requests session = requests.session() import logging import...

pandas 选择某几列的方法

如下所示: col_n = ['名称','收盘价','日期'] a = pd.DataFrame(df,columns = col_n) 以上这篇pandas 选择某几列的方法就...