Numpy транспонирования вектора - PullRequest
0 голосов
/ 03 марта 2019

Как я могу транспонировать вектор с numpy?Я пытаюсь

import numpy as np
center = np.array([1,2])
center_t = np.transpose(center)

Но это не работает, как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 03 марта 2019

Чтобы транспонировать массив, матрицу, данные должны иметь два измерения.Здесь ваши данные 1D.

Вы можете использовать np.vstack, чтобы получить двумерный вертикальный массив / матрицу из одномерного массива / матрицы.np.hstack - его горизонтальный эквивалент.

import numpy as np
center = np.array([1,2])
center_t = np.vstack(center)    
0 голосов
/ 03 марта 2019

Транспонирование одномерного массива само по себе является одномерным массивом.К сожалению, он работает именно так, как и задумано.

Пожалуйста, смотрите это .

import numpy as np
a = np.array([5,4])[np.newaxis]
print(a)
print(a.T)

np.newaxis по существу просто увеличивает размерность массива, так что вы перемещаете 2D-массив, как это было бы в Matlab.

0 голосов
/ 03 марта 2019

Изменение формы должно помочь.

center = np.array([1,2])

print(center.reshape(-1,1))

массив ([[1], [2]])

Однако для n-мерных массивовэто транспонирует массив.

print(center.T)

Например:

a = np.array([['a','b','c'],['d','e','f'],['g','h','i']])


print(a)

array([['a', 'b', 'c'],
       ['d', 'e', 'f'],
       ['g', 'h', 'i']], dtype='<U1')

print(a.T)

array([['a', 'd', 'g'],
       ['b', 'e', 'h'],
       ['c', 'f', 'i']], dtype='<U1')
...