【发布时间】:2015-06-14 04:08:58
【问题描述】:
如果我在每个维度中都有给定矩阵的开始和结束索引列表,有没有办法以有效的方式进行切片? 例如:
a=10
b=10
x_0=np.zeros((5,a,b))
i=[0, 5, 3, 5, 3]
j=[2, 4, 0, 6, 6]
x_1=x_0[:,i:i+3,j:j+3]
这里 x_1[k] 将是 (5,3,3)。换句话说:
X_1[0,3,3]=x0[0,i[0]:i[0]+3,j[0]:j[0]+3]
X_1[1,3,3]=x0[1,i[1]:i[1]+3,j[1]:j[1]+3]
X_1[2,3,3]=x0[2,i[2]:i[2]+3,j[2]:j[2]+3]
X_1[3,3,3]=x0[3,i[3]:i[3]+3,j[3]:j[3]+3]
X_1[4,3,3]=x0[4,i[4]:i[4]+3,j[4]:j[4]+3]
或更笼统地说:
for k in range(5):
x_1[k]=x_0[k,i[k]:i[k]+3,j[k]:j[k]+3]
任何帮助都将不胜感激。
【问题讨论】:
-
x_1 = x_0[:,i[:3],:][:,:,j[:3]]怎么样 -
您希望如何分割
0s 的数组并以(5,3,3)结尾?