【问题标题】:Slices along arbitrary axis沿任意轴切片
【发布时间】:2012-08-29 21:32:00
【问题描述】:

我有一个 numpy 数组 A 这样

A.shape[axis] = n+1.

现在我想通过分别沿轴axis 选择索引0, .., n-11, ..., n 来构造A 的两个切片BC。因此

B.shape[axis] = C.shape[axis] = n

BC 在其他轴上与A 具有相同的大小。不得复制数据。

【问题讨论】:

    标签: python numpy indexing


    【解决方案1】:
    # exemple data
    A = np.random.rand(2, 3, 4, 5)
    axis = 2
    n = A.ndim
    # building n-dimensional slice
    s = [slice(None), ] * n
    s[axis] = slice(0, n - 1)
    B = A[s]
    s[axis] = slice(1, n)
    C = A[s]
    

    单行:

    B = A[[slice(None) if i != axis else slice(0, n-1) for i in xrange(n)]]
    C = A[[slice(None) if i != axis else slice(1, n) for i in xrange(n)]]
    

    【讨论】:

      猜你喜欢
      • 2019-10-29
      • 1970-01-01
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 2022-10-30
      相关资源
      最近更新 更多