Joh*_*åde 5 python indexing numpy
我有一个numpy的阵列A,使得
A.shape[axis] = n+1.
Run Code Online (Sandbox Code Playgroud)
现在我想建立两片B和C中A通过选择指数0, .., n-1和1, ..., n沿轴分别axis.从而
B.shape[axis] = C.shape[axis] = n
Run Code Online (Sandbox Code Playgroud)
和B和C具有的尺寸相同A沿其它轴.必须没有数据复制.
# 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]
Run Code Online (Sandbox Code Playgroud)
单行:
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)]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |