gpt4 book ai didi

python - 计算多个 numpy 屏蔽数组的平均值 (masked_all)

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:31 27 4
gpt4 key购买 nike

首先,我是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)

这很好用。现在我有几个板,我想绘制每个点的平均压力。因为我不知道任何平均函数,所以我想到将所有板加在一起并除以板数......我尝试了以下方法:

import numpy.ma as ma    

meanmatrix=ma.masked_all((160,65),float)
for plate in plateslist:
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])
meanmatrix+=matrix
meanmatrix=meanmatrix/len(plateslist)
image.pcolormesh(meanmatrix,min,max)

这工作得很好,但有一个问题我无法解决。正如我所说,有时有些板 block 没有获取所有数据,因此图中的某些位置存在“漏洞”。现在我的平均矩阵有一个整体,其中一个板有一个整体,即使所有其他板在该位置都有数据。

我怎样才能确保我不会出现这些漏洞,或者是否有一种更平滑的方法来获得我的“平均矩阵”? (我希望我的问题足够清楚......)

编辑:

问题不是我没有得到数据的平均值,这实际上是有效的(我不喜欢我的做法,但它有效),问题是我得到了我描述的这些“漏洞”前。这就是让我烦恼的地方。

最佳答案

编辑:抱歉,我误解了这个问题。试试这个:

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

这将计算数组最后一个维度的平均值,即对板进行平均。缺失值将被忽略。

<小时/>

之前的答案:您可以取屏蔽数组的平均值,它会忽略缺失的值:

>>> X = ma.masked_all((160, 65))
>>> X.mean()
masked
>>> X[0, 0] = 1
>>> X.mean()
1.0

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

关于python - 计算多个 numpy 屏蔽数组的平均值 (masked_all),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com