【问题标题】:Skipping a column while grouping odd and even Rows and Columns in a 2D array在对二维数组中的奇数行和偶数行和列进行分组时跳过一列
【发布时间】:2020-07-02 05:14:52
【问题描述】:

我有一个 2 数组,我想将奇数和偶数交替的行和列分组,删除奇数的最后一列并堆叠数组。

    out_image[:,:shape] = s[::2,::2]
    out_image[:,shape:] = s[1::2,::2]

形状是中间的行/列。假设数组是 4094x2048 形状将是 1024。所以我最终会得到一个大小为 2047x2048 的数组。

当我们有一个像 4094x2047 这样的奇数形状的数组时,我想删除奇数系列中的最后一列并将它们组合在一起。我可以使用 np.delete 做到这一点,但我正在寻找就地解决方案(数组切片)。

【问题讨论】:

    标签: python arrays python-3.x numpy


    【解决方案1】:

    您可以使用它,它基本上通过整数除法从奇数选择中删除最后一列:

    out_image[:,:shape] = s[::2,::2]
    out_image[:,shape:] = s[1::2,:(s.shape[1]//2)*2:2]
    

    我通常建议这样做而不是预先分配 out_image 以避免混淆不同的奇数和偶数情况:

    out_image=np.hstack((s[::2,::2],s[1::2,:(s.shape[1]//2)*2:2]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2021-03-03
      • 2020-10-06
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多