2015-10-20 2 views
1

IHAVE в Numpy массив А какCrop часть np.array

A.shape 
(512,270,1,20) 

Я не хочу, чтобы использовать все 20 слоев в размерности 4. Новый массив должен быть как

Anew.shape 
(512,270,1,2) 

Так я хотите обрезать 2 «ломтики» из массива а

ответ

4

Я думаю, что вы должны быть в состоянии понять это чтение документации питона, но ответ:

start = 4 # Index where you want to start. 
Anew = A[:,:,:,start:start+2] 
+0

спасибо, и если я не хочу, чтобы обрезать invervall но проведён например. первый, пятый, 11-й ... срез? – refle

+0

Прочтите отличное сообщение http://stackoverflow.com/questions/509211/explain-pythons-slice-notation – Chiel

+0

получил его, спасибо. просто используйте [-1, - .., - ..], чтобы добраться до фрагмента – refle

1

Вы можете использовать a list or array of indices вместо среза обозначения для того, чтобы выбрать произвольную последовательность индексов в конечном измерении:

x = np.zeros((512, 270, 1, 20)) 
y = x[..., [4, 10]] # the 5th and 11th indices in the final dimension 
print(y.shape) 
# (512,270,1,2)