Как переставить 2-элементный вектор

1

В python у меня есть массив 2x1

a=array([[ 0,  4,  8, 12, 16],
     [ 0,  8, 16, 24, 32]])

Когда я извлекаю вектор-столбец

c=a[:,1]

C становится массивом 1x2, и я хочу, чтобы он был массивом 2x1. Применение транспонирования не похоже на трюк.

Любые предложения?

Спасибо

  • 0
    Можете ли вы привести пример желаемого результата? Я запутался: хотите ли вы иметь 2 массива по 1 элементу в каждом?
  • 0
    В numpy, ваш массив 2 x 5, не так ли? И я понимаю, что вы хотите извлечь срез столбца как матрицу столбца, а не как вектор?
Теги:
numpy
transpose

3 ответа

8
Лучший ответ

После

c=a[:,1]

c теперь:

array([4, 8])

то есть. 1D массив (так даже не 1x2).

Если вам нужен массив 2x1, попробуйте следующее:

c = a[:,1:2]

он станет следующим:

array([[4],
       [8]])
1

Другие варианты:

import numpy as np
c = a[:,1]

а затем получить доступ к данным с требуемой формой, используя:

c[:,np.newaxis]

или

c[:,None]
1

Вы пробовали c.reshape(2,1)?

  • 0
    Я пытался изменить форму, но мне показалось немного противоречивым,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню