python – 检查2d numpy数组中的nan
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 检查2d numpy数组中的nan,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2332字,纯文字阅读大概需要4分钟。
内容图文
![python – 检查2d numpy数组中的nan](/upload/InfoBanner/zyjiaocheng/728/5c2d0c92532541b3a21dfb42c2e338eb.jpg)
我正在研究一小段代码,它以我预先制作的插值曲面开始.插值用nan表示填充在表面的间隙中.我的部分处理涉及查看特定点周围的局部窗口,并使用局部曲面计算一些度量.理想情况下,如果整个局部表面不包含nan值,我希望这个代码只能进行任何计算.代码遍历原始大表面并检查关于点的局部窗口是否具有nan.
我知道这不是最有效的方法,时间效率不是我必须担心的事情.
这是我到目前为止:
for in in range(startz,endx):
imin = i - half_tile
imax = i + half_tile +1
for j in range(starty,endy):
jmin = i - half_tile
jmax = i + half_tile +1
#Test the local surface for nan's
z = surface[imin:imax,jmin:jmax]
Test = np.isnan(sum(z))
#conditional statement
if Test:
print 'We have a nan'
#set measures I want to calculate to zero
else:
print 'We have a complete window'
#do a set of calculations
可变表面是我最初创建的插值表面. half_tile变量只是定义了我想要使用的本地窗口的大小. startx,endx,starty,endy定义了要迭代的原始曲面的大小.
我遇到问题的地方是我的条件声明似乎没有起作用.它会告诉我,我正在评估的本地窗口中没有任何nan,但是我的其余代码(我在这里没有显示)将无法工作,因为它表示阵列中有nan.
一个例子可能是:
[[ 7.07494104 7.04592032 7.01689961 6.98787889 6.95885817 6.92983745
6.90081674 6.87179602 6.8427753 6.81375458 6.78473387 6.75571315
6.72669243]
[ 7.10077447 7.07175376 7.04273304 7.01371232 6.98469161 6.95567089
6.92665017 6.89762945 6.86860874 6.83958802 6.8105673 6.78154658
6.75252587]
[ 7.12660791 7.09758719 7.06856647 7.03954576 7.01052504 6.98150432
6.9524836 6.92346289 6.89444217 6.86542145 6.83640073 6.80738002
6.7783593 ]
[ 7.15244134 7.12342063 7.09439991 7.06537919 7.03635847 7.00733776
6.97831704 6.94929632 6.9202148 6.89105825 6.86190169 6.83274514
6.80358859]
[ 7.17804068 7.14888413 7.11972758 7.09057103 7.06141448 7.03225793
7.00310137 6.97394482 6.94478827 6.91563172 6.88647517 6.85731862
nan]]
以下是我的代码正在评估的本地窗口的示例.在我的代码中,这将是z.整个数组具有良好的值,除了最后一个值是nan.
我的代码中的“检查”功能并没有发现阵列中有一个nan.条件语句返回false时应该为true表示存在nan.我在检查数组的方式中缺少任何基本的东西?或者我的方法完全错了?
解决方法:
isnan()为数组中的每个元素返回一个true或false的数组.除了isnan()之外,还需要np.any().见下面的例子
import numpy as np
a = np.array([[1,2,3,4],[1,2,3,np.NaN]])
print np.isnan(a)
print np.any(np.isnan(a))
结果是
[[False False False False]
[False False False True]]
True
内容总结
以上是互联网集市为您收集整理的python – 检查2d numpy数组中的nan全部内容,希望文章能够帮你解决python – 检查2d numpy数组中的nan所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。