2017-01-13 2 views
-1

Так что я нахожу это трудно представить, но в основном я читал в некоторых данных, используя NumPy (python3.x) сNumpy транспонировать данные в примере

np.genfromtext() 

, который дает мне 3d массив формы (5, 1024, 2). По существу 5 массивов, каждая из 1024 пар координат.

Что я делаю, это изменение каждой из координат x на 21.0 для нормализации моих данных, а затем я хочу записать все это обратно в новые файлы в том же формате, что и раньше (до того, как у меня было 5 отдельных файлов координатных пар с последующим переносами), т.е.

x0 y0 
x1 y1 
x2 y2 (this x 1024) 

Это доказывает труднее, чем я думал, и на данный момент лучшее, что я могу сделать извлечь каждый, сдвиг каждого в цикле на 21 и положил его обратно вместе, но когда я это делаю, я получаю, что это форма (5, 2, 1024), которая не то же самое. Мне нужно, чтобы это было изменено (5, 1024, 2), но я не понимаю, как работает изменение.

Если кому-то интересно, мне нужно написать каждый из 5 наборов пар координат для разделения файлов.

Спасибо.

+1

Say 'a' ваш массив, переложить все й на 21 так же просто, как' а [ :,:, 0] + = 21'. Как вы говорите, используя for-loop, я предполагаю, что это не так, как вы это делаете. Если мое предположение верно, я предлагаю прочитать базовый учебник numpy, чтобы узнать основные «трюки». – jadsq

ответ

1

Просто, чтобы ответить на вопрос:

Что вы хотите actualy транспозиции (т.е. поменять местами положение двух осей) не Reshape. Для транспонирования (5,2,1024) к (5,1024,2), вы можете использовать следующее:

a = np.random.rand(5,2,1024) 

b = np.transpose(a,[0,2,1]) 
print(a.shape) 
print(b.shape) 
Смежные вопросы