У меня есть массив 3D numpy. Я хочу сплющить кусочки, а затем снова превратить в тот же трехмерный массив. Как я могу это сделать? (python) - PullRequest
0 голосов
/ 21 апреля 2020

У меня в основном массив numpy формы (9400,20,30).

Я хочу взять кусочки 200 двумерных массивов (Shape = (200,20,30)) и затем сгладьте их для выполнения некоторых вычислений.

Затем я хочу вернуть массив к моей первоначальной (9400,20,30) форме.

Любая помощь приветствуется! Спасибо!

1 Ответ

0 голосов
/ 21 апреля 2020

Вы должны нарезать его и изменить его следующим образом:

smallArray = bigArray[:200]
bigArray = bigArray[200:]
print(f'bigArray sliced shape: {np.shape(bigArray)}')
print(f'smallArray shape: {np.shape(smallArray)}')
smallArray = smallArray.flatten()
print(f'smallArray flattened: {np.shape(smallArray)}')
smallArray = np.reshape(smallArray, (200,30,20))
print(f'smallArray reshaped shape: {np.shape(smallArray)}')

enter image description here

PD: Я не уверен, что нарезка большого массива хорошая идея, потому что тогда вы собираетесь сохранить массив меньших массивов, чтобы впоследствии изменить его, подумайте о том, чтобы оставить его и попробуйте:

smallArray = bigArray[i*200:(i+1)*200]
...