Транспортировка данных, не дающая ожидаемого результата

Я пытаюсь сделать очень простой пример в Scipy модуле Python для метода транспонирования, но не дает ожидаемого результата. Я использую Ipython с режимом pylab.

a = array([1,2,3] print a.shape >> (3,) b = a.transpose() print b.shape >> (3,) 

Если я печатаю содержимое массивов «a» и «b», они похожи.

Ожидание: (что приведет к трансформации Matlab om)

  [1, 2, 3] 

4 Solutions collect form web for “Транспортировка данных, не дающая ожидаемого результата”

Транспортировка transpose() Transform transpose() эффективно преобразует форму массива. Если массив одномерный, это означает, что он не действует.

В NumPy массивы

 array([1, 2, 3]) 

а также

 array([1, 2, 3]) 

на самом деле одинаковы – они только различаются в пробелах. Возможно, вам нужны соответствующие двумерные массивы, для которых transpose() будет работать нормально. Также рассмотрите тип matrix NumPy:

 In [1]: numpy.matrix([1, 2, 3]) Out[1]: matrix([[1, 2, 3]]) In [2]: numpy.matrix([1, 2, 3]).T Out[2]: matrix([[1], [2], [3]]) 

Обратите внимание, что для большинства приложений простой одномерный массив будет работать как вектор строки или столбца, но при numpy.matrix из Matlab вы можете использовать numpy.matrix .

Transpose – это noop для одномерных массивов.

Добавить новую ось и транспонировать:

 >>> a[None].T array([[1], [2], [3]]) >>> np.newaxis is None True 

Или измените форму:

 >>> a.reshape(a.shape+(1,)) array([[1], [2], [3]]) 

Или как @Sven Марнах предложил в комментариях добавить новую ось в конце:

 >>> a[:,None] array([[1], [2], [3]]) 

Вы должны попробовать: a = array([[1,2,3]]) или a = array([[1],[2],[3]]) , то есть a должна быть матрицей (вектор-строка, вектор столбца).

Более сжатый способ изменить 1D-массив в 2D-массив:

 a = np.array([1,2,3]), a_2d = a.reshape((1,-1)) or a_2d = a.reshape((-1,1)) 

-1 в векторе формы означает «заполнить любое число, которое делает эту работу»

  • Использование scipy.spatial.Delaunay вместо встроенной версии matplotlib.tri.Triangulation
  • Возможно ли воспроизвести randn () MATLAB с NumPy?
  • Scipy curvefit RuntimeError: Оптимальные параметры не найдены: количество вызовов функции достигло maxfev = 1000
  • scipy.optimize.fmin_cg: «Желаемая ошибка не всегда достигается из-за потери точности».
  • Как получить доступ к полям в структуре, импортированной из файла .mat с помощью loadmat в Python?
  • Как определить неопределенность параметров подгонки с помощью Python?
  • Определение логнормального распределения с использованием Scipy vs Matlab
  • Python из памяти большого CSV-файла (numpy)
  • Почему SciPy возвращает отрицательные p-значения для чрезвычайно малых значений p с точным тестом Fisher?
  • используя SciPy для интеграции функции, возвращающей матрицу или массив
  • «Якобиан необходим для метода Ньютона-CG», когда приближение к якобиану не используется, когда jac = False?
  • Python - лучший язык программирования в мире.