使用一维数组上的条件掩盖二维数组的最佳方法

时间:2019-04-04 11:51:01

标签: python mask

我有一个MxN numpy的空气质量数据数组(M =纬度,N =经度)。我想对此数据应用遮罩,以便遮盖赤道以上(纬度> 0)以上的所有内容。但是,我的纬度数据是一维(M)。

我可以想到掩盖这些数据的方法,但是它们似乎都太冗长和冗长。这就是为什么我想问你,什么是最好的方法。

import numpy as np
from numpy.ma import masked_where

my_data = np.random.randn(10,5)
latitude = np.linspace(-5,4,10)
longitude = np.linspace(10,14,5)

# I would like something like this, if latitude had the same shape as my_data
masked_data = masked_where(latitude < 0, my_data)

到目前为止,我正在使用np.tile将纬度扩展为与my_data相同的形状。但是,我想知道是否存在一种更智能的索引编制或解决方法。结论:您认为屏蔽my_data的最佳方法是什么?

谢谢

1 个答案:

答案 0 :(得分:3)

您可以直接为my_data编制索引(numpy将自动执行掩码广播)

my_data[latitude > 0]

输出:

(the last 4 rows of my_data)