Для чего стоит, вот решение на Python (с numpy
):
Чтобы уменьшить размер вдвое i
:
def halve(x,i):
return x[(slice(None),)*i+(slice(x.shape[i]/2),)]
x = zeros([2,4,6,8])
y = halve(x,2) # dimension 2 was 6
y.shape # (2,4,3,8) # dimension 2 is now 3
Если вы просто хотите вдвое уменьшить первое измерение, тогда достаточно x[:len(x)/2]
.
Редактировать
Я получил несколько скептических комментариев по поводу моего предыдущего решения, x[:len(x)/2]
, поэтому вот пример:
x=zeros([4,2,5,6,2,3]) # first dimension is 4
len(x) # 4
x.shape # 4,2,5,6,2,3
x[:len(x)/2].shape # 2,2,5,6,2,3 <- first dimension divided by two