numpy数组过滤器并替换

失落1

我有一个数组

a = np.array([1,2,3,4,np.nan])

我想用替换小于1.5的任何东西np.nan,即我想

a = np.array([np.nan,2,3,4,np.nan])

我怎么做?

我做了

 a[a<1.5] = np.nan

我在IPython(Py3.4)中收到以下运行时警告错误RuntimeWarning: invalid value encountered in less这是因为我的名单有np.nan吗?我有什么办法可以防止这种情况发生?

还有一种无需分配就可以内联的方式吗?而不是做

a[a<1.5]=np.nan 
return a 

我可以做

 return a... 

....需要填写的地方。

威姆

这是RuntimeWarning因为我的清单包含np.nan吗?

是。

我有什么办法可以防止这种情况发生?

就您而言,可以安全地忽略此警告。为了避免意外删除无关的警告,请不要在所示的上下文管理器中放入其他任何内容

>>> import numpy as np
>>> a = np.array([1,2,3,4,np.nan])
>>> with np.errstate(invalid='ignore'):
...     a[a<1.5] = np.nan
...     
>>> a
array([ nan,   2.,   3.,   4.,  nan])

这是就地操作,此处未创建副本。要返回原样a未修改的副本,请使用masked array方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章