Python帮助使用'numpy.masked_在哪里“有条件地从另一张名单上

2024-10-02 20:30:04 发布

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

我正在写一个天文观测模拟。我有一个数据阵列,每24小时测量一次:

data = [0,1,2,3,4]

我有一个数组,它是24小时内云/雨的分钟数,四舍五入到最接近的小时数:

^{pr2}$

我想使用一个屏蔽数组来隐藏基于天气数组中的值的数据数组中的值。掩蔽对于绘图和数据分析非常重要(而不是删除)。在

因此,如果我只想显示有120分钟停机时间的数据点,我会:

downtime = 120

data_masked = np.ma.masked_where(weather < downtime, data)

这将导致:

data_masked = [0, 1, ---, ---, 4]

但我的数据伪装似乎起到了相反的作用。如果我把我的数据和天气都画在同一个轴上。我在掩盖天气停机时间低于我的阈值的点。在

我试着把运算符颠倒过来,好像把所有的东西都放进去了。有什么想法吗?还是我没有抓住要点妈妈?在

谢谢!在


Tags: 数据绘图data时间数组downtime停机屏蔽
2条回答

你会想用

np.ma.MaskedArray(data,mask)

请注意,掩码指定要屏蔽的数据。另外,对于以下类型的操作

^{pr2}$

要按您的意愿工作,“天气”需要是一个数组而不是一个列表,因此:

weather = np.array([0,60,120,180,0])
...
data_masked=np.ma.MaskedArray(data, weather >= downtime)

请注意,我使用了“>;=”而不是“<;”来获得所需的结果

使用numpy.ma返回一个掩码。也就是说,隐藏(遮罩)符合条件weather < downtime的所有内容。如果要显示符合条件的所有内容,只需反转条件:

data = np.array([0,1,2,3,4])
weather = np.array([0,60,120,180,0])
downtime = 120
data_masked = np.ma.masked_where(weather >= downtime, data)
data_masked

则输出为:

^{pr2}$

要访问数据,请使用data_masked.data。在

相关问题 更多 >