【问题标题】:python mask for different size numpy array不同大小的numpy数组的python掩码
【发布时间】:2014-03-24 19:06:50
【问题描述】:

我有三个 numpy 数组:

X 这是一个具有二维(高度和宽度)的numpy数组,例如:1000x2000 Y 这是一个具有二维(高度和宽度)的numpy数组,例如:1000x2000 Img 这是一个具有三个维度的 numpy 数组:(高度,宽度,rgb)例如:1000x2000x3

我创建了一个 X 和 Y 的掩码,例如:mask = [Y[:,:]>100, X[:,:]>50] 并且我创建了这些掩码的总和:

masks = mask[0] & mask[1]

现在我想根据蒙版选择 X、Y 和 Img 部分:

X_ = X[masks]
Y_ = Y[masks]

这很好用,但现在我也想为Img 做同样的选择,但这不起作用,因为它是一个三维数组。我如何使用掩码来选择与 X 和 Y 相同的“字段”?

【问题讨论】:

  • Img[masks,:] 有什么问题?
  • @flebool 甚至只是 Img[mask] 应该可以通过广播工作。
  • 对我来说,即使Img[masks] 也有效。 Python 2.7.5+
  • 当然,我是在瞎写代码
  • 感谢您让我看到我的错误,它最终只是一个类型。

标签: python numpy


【解决方案1】:

您是否尝试过以相同的方式对其进行索引?我相信它应该可以正常工作。

>>> a = arange(24).reshape(2,4,3)
>>> mask = arange(8).reshape(2,4) < 5
>>> a[mask].shape
(5, 3)

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2019-06-08
    • 1970-01-01
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多