假设我有3(或更多)维数组A
和两个具有最小和最大边的数组left
,right
用于切片。你知道吗
有没有比这个更紧凑的符号来选择由我的边分隔的视图?你知道吗
V = A[left[0]:right[0], left[1]:right[1], left[2]:right[2])
可能这样已经更好了
view = [ slice(a, b) for a,b in zip(left, right) ]
V = A[view]
但我觉得有一种我看不到的更为轻快的方式。。。不知道,是不是有点np.s_
?你知道吗
编辑:预期结果的示例
A = np.arange(1000).reshape(10,10,10)
left = np.array([0, 0, 0])
right = np.array([2, 4, 3])
view = [ slice(a, b) for a,b in zip(left, right) ]
In [32]: A[view]
Out[32]:
array([[[ 0, 1, 2],
[ 10, 11, 12],
[ 20, 21, 22],
[ 30, 31, 32]],
[[100, 101, 102],
[110, 111, 112],
[120, 121, 122],
[130, 131, 132]]])
您可以将
np.s_
子类化以支持“矢量化”切片表示法:相关问题 更多 >
编程相关推荐