使用一维数组上的条件屏蔽二维数组的最佳方法

Optimum way to mask a two-dimension array using a condition on a one-dimension array

我有一个 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 的最佳方法是什么?

谢谢

你可以直接索引my_datanumpy会自动执行掩码的广播):

my_data[latitude > 0]

输出:

(the last 4 rows of my_data)