Как перемещать ось на простом массиве numpy - PullRequest
0 голосов
/ 07 мая 2020

У меня проблемы с перемещением оси 3 в положение 1. Я бы хотел переместить тройку на первую 69 позицию. Это для набора данных машинного обучения, и PyTorch будет принимать данные только в том случае, если они имеют формат 3x69x69. Спасибо за любую помощь!

 # To get the images and labels from file
with h5py.File(r"C:\Users\ajbur\Downloads\Galaxy10.h5", 'r') as F:
    images = np.array(F['images'])
    labels = np.array(F['ans'])
np.shape(images)
np.moveaxis(images,0,-1).shape
np.shape(images)

вывод [20000, 69, 69, 3] Я хочу, чтобы он был [20000, 3, 69, 69]

1 Ответ

1 голос
/ 07 мая 2020

Второй и третий аргументы moveaxis - это источник и место назначения. Чтобы переместить последнюю ось во вторую позицию, вы можете сделать:

a = np.empty([20000, 69, 69, 3])
np.moveaxis(a, -1, 1).shape
>>> (20000, 3, 69, 69)
...