Python NumPy掩蔽问题——我遗漏了什么?
我使用matplotlib绘制饮食信息,其中x轴表示日期范围,y轴表示消耗的卡路里数量。这并不太复杂,但有一个障碍:并非所有日期都有卡路里信息,最好将这些信息排除在外,而不是进行某种插值/平滑处理 我发现了一些在这种情况下使用numpy掩码的好例子,但似乎我没有弄明白什么,因为我认为应该产生我想要的结果的代码没有改变任何东西 看看:Python NumPy掩蔽问题——我遗漏了什么?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我使用matplotlib绘制饮食信息,其中x轴表示日期范围,y轴表示消耗的卡路里数量。这并不太复杂,但有一个障碍:并非所有日期都有卡路里信息,最好将这些信息排除在外,而不是进行某种插值/平滑处理 我发现了一些在这种情况下使用numpy掩码的好例子,但似乎我没有弄明白什么,因为我认为应该产生我想要的结果的代码没有改变任何东西 看看: carries\u list\u ma=np.ma.masked\u其中(carries\u list==0,carries\u list) plt.plot(日期
carries\u list\u ma=np.ma.masked\u其中(carries\u list==0,carries\u list)
plt.plot(日期时间列表,卡路里列表,标记='x',颜色='r',ls='-')
这就产生了:
我只想在9-23的队伍中有一个未画的空隙
事实上,我知道我对masked的使用肯定是错误的,因为当我打印卡路里列表mask时,结果是“False”。不是一个列表,它应该显示哪些值被True和False屏蔽/取消屏蔽
有人能帮我澄清一下吗
非常感谢 尝试使用
calories_list_ma = np.ma.masked[calories_list == 0]
我从名字猜你的
carries\u列表是一个列表。如果它是一个列表carries\u list==0
将返回一个值,即False,因为列表不等于值0masked_,其中
将尽职地将掩码设置为False,从而生成列表的无掩码副本
您需要先执行carries\u list=np.array(carries\u list)
以使其成为一个numpy数组。与列表不同,numpy数组具有“广播”功能,carries\u list==0
将每个元素单独与零进行比较。什么是carries\u list
?如果它确实是一个列表,carries\u list==0
确实会返回False,导致没有掩码。你需要先把它做成一个小数组。哦!非常感谢。目前的产出与预期一致。