【发布时间】:2019-03-11 10:51:06
【问题描述】:
我想通过执行以下操作来编写更具可读性的代码:
import numpy as np
SLICE_XY = slice(0, 2)
SLICE_Z = slice(2, 3)
data = np.array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[9, 10, 11]])
xy = data[:, SLICE_XY]
z = data[:, SLICE_Z]
但是,我遇到了执行上述操作的问题
>>> xy
array([[ 0, 1],
[ 3, 4],
[ 6, 7],
[ 9, 10]])
>>> z
array([[ 2],
[ 5],
[ 8],
[11]])
这是我对xy 的期望。但是对于z,我希望它相当于
>>> data[:, 2]
array([ 2, 5, 8, 11])
注意:
>>> data[:, 0:2]
array([[ 0, 1],
[ 3, 4],
[ 6, 7],
[ 9, 10]])
【问题讨论】:
-
This answer 有助于将切片符号转换为可以存储的元组。例如你可以说
SLICE_Z = slice(None, None, None), 2然后z = data[SLICE_Z] -
np.s_和np.r_也可能有用。
标签: python numpy numpy-indexing