计算多个numpy掩码数组的平均值(masked_all)

2024-10-03 06:31:49 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我对python和编程还不熟悉,但你们已经帮了我很多忙,所以非常感谢!但我遇到了一个至今没有找到答案的问题:

我有几个板块的数据,其中的数据代表每个板块在大量不同点的压力。问题是,这些板不是完全圆的,因为传感器测量压力,有时这些传感器甚至会产生误差,所以我在板内的某个位置没有任何数据。在

当我只需要画一个盘子时,我会这样做:

import numpy.ma as ma    

matrix=ma.masked_all((160,65),float)
for x in range(len(plate.X)):
    matrix[(plate.Y[x],plate.X[x])]=data.index(plate.measurementname[x])
image.pcolormesh(matrix,min,max)

这个很好用。现在我有几个板块,我想画出每个点的平均压力。因为我不知道什么平均函数,所以我想把所有的盘子加起来,然后除以盘子的数目……我试着如下:

^{pr2}$

这很有效,但有一个问题我解决不了。正如我所说,有时有些板块并没有得到所有的数据,因此在图中的某些点上有一个“洞”。现在我的meanmatrix有一个整体,其中一个板块有一个整体,即使所有其他板块都有数据。在

我怎样才能确保我不会有这些漏洞,或者有没有更平滑的方法来获得我的“meanmatrix”??(我希望我的问题足够清楚…)

编辑:

问题不是我没有得到数据的平均值,这实际上是可行的(我不喜欢我是怎么做的,但它是有效的),问题是我得到了我之前描述的这些“洞”。这就是困扰我的原因。在


Tags: 数据答案编程代表传感器matrix误差整体
2条回答

编辑:对不起,我误解了这个问题。试试这个:

allplates = ma.masked_all((160, 65, numplates))
# fill in allplates
meanplate = allplates.mean(axis=2)

这将计算数组最后一个维度上的平均值,也就是说,平均所有板。忽略缺少的值。在


前面的答案是:可以取屏蔽数组的平均值,它将忽略缺失的值:

^{pr2}$

不过,尽量避免使用matrix作为变量名,因为它也引用了NumPy数据结构。在

好吧,我有个答案:

import numpy.ma as ma    

allplats=ma.masked_all((160,65),float)
for plate in plateslist:
    for x in range(len(plate.X)):
        allplates[(plate.Y[x],plate.X[x])]+=data.index(plate.measurementname[x])
allplates=allplates/len(plateslist)
image.pcolormesh(meanmatrix,min,max)

这真的很管用!所以我想在添加两个蒙版的“所有数组”时有一个错误…(“愚蠢是愚蠢的”) 如果有人有一个更好的方法来获得每个点上所有盘子的平均值,那么读一下就好了。在

相关问题 更多 >