2015-08-25 2 views
0

У меня есть Numpy массив Z, что:Python NumPy 3D массив в 2D массив (удаление размеры)

Z.shape 

#Out[1]: 
    (138, 112, 123) 

Как преобразующие Z в новый массив NewZ, такие, что:

NewZ.shape 

#Out[2]: 
    (138, 112) 

?

+3

Какую операцию вы хотите выполнить по измерению, которое хотите удалить? 'NewZ = np.max (Z, axis = 2)' будет выдавать 'NewZ.shape'' (138, 112) ', например. –

+1

Массив формы '(138, 112, 123)' имеет элементы '1901088'. Массив формы '(138, 112)' имеет только элементы '15456'. Итак, какие элементы '15456' исходного массива вы хотите закончить в новом массиве? –

+0

@DolphinGenomePyramids: Можете ли вы отредактировать вопрос, чтобы выяснить, какую операцию сокращения вы ищете? –

ответ

1

Извлечение размера означает удаление информации, поэтому вам нужно будет принять решение о правиле для проецирования исходных данных вниз в меньшее количество измерений.

Предположим, что мы имеем

import numpy as np 
Z = np.random.random((138, 112, 123)) 

Вот два примера, как получа NewZ.shape из (138, 112):

  • NewZ = np.max(Z, axis=2), который занимает наибольший элемент последней оси.
  • NewZ = Z[:,:,0], который берет первый элемент последней оси.