Python基础:numpy中空值怎样设置
2023-03-20 14:46:26 时间
今天小编为大家带来在numpy中如何设置空值的办法,下面一起来看看吧。
我不明白为什么我会以0而不是不满足条件的空值或空值结尾… b是一个用0和1值填充的numpy数组,c是另一个完全填充的numpy数组。
所有阵列均为71x71x166
<p style="line-height: 1.75em"><span>a = np.empty(((71,71,166))) d = np.empty(((71,71,166))) for indexes, value in np.ndenumerate(b): i,j,k = indexes a[i,j,k] = np.where(b[i,j,k] == 1, c[i,j,k], d[i,j,k])<br /></span></p>
我想最后得到一个数组,该数组仅具有满足条件的值,并且在其他任何地方都为空,而不会改变其形状。
要求澄清的全部澄清问题:我从一个带有形状的浮动填充数组开始(71,71,166)我根据应用于float数组的cutoff创建一个int数组,基本上创建了一些bin,大致标出了数组中的10个区域,其间有0个值我想要最终得到的是一个具有形状(71,71,166)的数组,其具有特定阵列方向的平均值(假设垂直方向,如果您将3D数组视为3D立方体)某个“bin” …所以我试图循环遍历“bins”b == 1,b == 2等,在满足条件的情况下对float进行采样但在其他地方为null,这样我就可以取平均值,然后在最后重新组合成一个数组循环….不确定我是否让自己明白了.我正在使用np.where并使用索引,因为当我尝试执行此操作时我仍然会遇到错误,尽管它感觉非常低效.
考虑这个例子:
<p style="line-height: 1.75em"><span>import numpy as np data = np.random.random((4,3)) mask = np.random.random_integers(0,1,(4,3)) data[mask==0] = np.NaN<br /></span></p>
当掩码为0时,数据将设置为nan.当然,您可以使用任何类型的条件,或者对b中的不同值执行不同的操作.
要删除除特定bin之外的所有内容,请尝试以下操作:
<p style="line-height: 1.75em"><span>c[b!=1] = np.NaN<br /></span></p>
因此,要复制特定bin中的所有内容:
<p style="line-height: 1.75em"><span>a = np.copy(c) a[b!=1] == np.NaN<br /></span></p>
要获得bin中所有内容的平均值:
<p style="line-height: 1.75em"><span>np.mean(c[b==1])<br /></span></p>
所以也许这可能会做你想要的(其中bin是bin值的列表):
<p style="line-height: 1.75em"><span>a = np.empty(c.shape) a[b==0] = np.NaN for bin in bins: a[b==bin] = np.mean(c[b==bin])<br /></span></p>
学会的小伙伴一定要勤加练习哦~更多Python学习推荐:PyThon学习网教学中心。
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测