gpt4 book ai didi

python - NumPy 屏蔽问题——我错过了什么?

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:43 25 4
gpt4 key购买 nike

我正在使用 matplotlib 绘制饮食信息,其中 x 轴表示日期范围,y 轴表示消耗的卡路里数。这并不太复杂,但有一个障碍:并非所有日期都有卡路里信息,将它们排除在外而不是进行某种插值/平滑是最有意义的。

我发现了几个在这种情况下使用 numpy 掩码的好例子,但似乎我没有弄清楚一些东西,因为我认为应该产生我想要的结果的代码没有改变任何事物。

看看:

calories_list_ma = np.ma.masked_where(calories_list == 0, calories_list)plt.plot(datetimes_list, calories_list_ma, marker = 'x', color = 'r', ls = '-')

产生这个:Sample Output

我只想在 9-23 的线上有一个未标出的缺口。

实际上,我知道我对 masked_where 的使用一定是不正确的,因为当我打印 calories_list_ma.mask 时,结果是“False”。不是一个列表,它应该是一个列表,显示哪些值被 True 和 False 屏蔽/取消屏蔽。

谁能帮我弄清楚?

非常感谢!

最佳答案

我从名称中猜测您的 calories_list 是一个列表。如果它是一个列表,calories_list == 0 将返回一个值,即 False,因为该列表不等于值 0。masked_where 将尽职尽责地将掩码设置为 False ,从而生成列表的未屏蔽副本。

您需要先执行 calories_list = np.array(calories_list) 以使其成为一个 numpy 数组。与列表不同,numpy 数组具有“广播”功能,calories_list == 0 将每个元素单独与零进行比较。

关于python - NumPy 屏蔽问题——我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21888695/

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