知行编程网知行编程网  2022-09-16 13:30 知行编程网 隐藏边栏  132 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python基础:numpy中空值怎样设置的相关知识,包括剑盾基础值,以及python怎么给空列表赋值这些编程知识,希望对大家有参考作用。

今天小编就给大家带来如何在numpy中设置空值。让我们来看看。

我不明白为什么我最终会得到一个 0 而不是 null 或不满足条件的 null ... b 是一个填充了 0 和 1 值的 numpy 数组,c 是另一个完全填充的 numpy 数组。


所有阵列均为71x71x166

<p><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) 我根据应用于浮点数组的截止值创建一个整数数组,基本上创建一些大致标记在数组 10 个区域,中间有 0 个值我想要结束的是一个形状数组 (71, 71, 166),具有特定数组方向的平均值(假设垂直方向,如果你想到 3D数组作为3D立方体)某个“bin”......所以我试图循环通过“bins”b == 1,b == 2等,如果满足条件则对浮点数进行采样但在其他地方为空所以我可以取平均值,然后在最后重新组装成一个数组循环....不确定我是否让自己理解。我正在使用 np.where 并使用索引,因为尝试执行此操作时仍然会出错,尽管感觉效果非常低。


考虑这个例子:

<p><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><span>c[b!=1] = np.NaN<br/></span></p>


因此,要复制特定bin中的所有内容:

<p><span>a = np.copy(c)
a[b!=1] == np.NaN<br/></span></p>


要获得bin中所有内容的平均值:

<p><span>np.mean(c[b==1])<br/></span></p>


所以也许这可能会做你想要的(其中

bin是bin值的列表

):

<p><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学习推荐:



本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享