【问题标题】:How to get indices of valid values of numpy masked array如何获取 numpy 掩码数组的有效值的索引
【发布时间】:2018-09-01 09:15:48
【问题描述】:

我有一个 netCDF4 数据集,表示多个相同维度的矩阵 (551, 146),一个矩阵 (M1) 包含经度值,另一个矩阵 (M2) 包含纬度值。每个矩阵都是一个 numpy 掩码数组。

给定一个 lon/lat 元组 (A, B),我想获取矩阵索引 (lon, lat),其中值 A 匹配 M1,值 B 匹配 M2

我认为我可以用以下方式表示索引:

lon_idx, lat_idx = np.mgrid[:lon.shape[0], :lon.shape[1]]

还有两个形状相同的矩阵,其中一个矩阵的所有值都设置为A,另一个矩阵的所有值都设置为B

然后我希望以某种方式将这些矩阵组合起来,最终得到一个由lonlat 索引组成的数组,其中值匹配。

在 numpy 中执行此操作的惯用方式是什么?

【问题讨论】:

  • .. 试试np.ix_?
  • 请包含minimal reproducible example,包括您要查找的输出。
  • @Divakar 我想我需要的不仅仅是这个提示来理解如何解决我的问题。我试过使用np.ix_,但它需要一维数组,而且我有矩阵,即二维数组..
  • 尝试打印np.where(M1 == A),看看你会得到什么。你应该得到你需要的索引。

标签: python numpy netcdf4


【解决方案1】:

感谢#python @freenode 上的 SnoopJeDi,他为我找到了解决方案:

In [58]: np.argwhere((lon == lon[250][145]) & (lat == lat[250][145]))
Out[58]: array([[250, 145]])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2018-04-09
    • 2014-12-22
    相关资源
    最近更新 更多