Python: Дифференциация между строкой и векторами - столбцами

Существует ли хороший способ дифференцироваться между строкой и векторами - столбцами в Python? До сих пор я использую numpy и scipy и что я вижу, до сих пор то, что, Если я должен был дать одному вектор, сказать

from numpy import *
Vector = array([1,2,3])

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

array([1,2,3]) == array([1,2,3]).transpose()
True

Который в "реальном мире" просто неверен. Я понимаю, что для большинства функций на векторах от упомянутых модулей не нужно дифференцирование. Например, outer(a,b) или a.dot(b) но я хотел бы дифференцироваться для своего собственного удобства.

61
задан 20 March 2017 в 18:31

2 ответа

Если я хочу 1x3 массив, или 3x1 массив:

import numpy as np
row_arr = np.array([1,2,3]).reshape((1,3))
col_arr = np.array([1,2,3]).reshape((3,1)))

Проверка Ваша работа:

row_arr.shape  #returns (1,3)
col_arr.shape  #returns (3,1)

я нашел, что много ответов здесь полезно, но слишком сложное для меня. На практике я возвращаюсь к shape и reshape, и код читаем: очень простой и явный.

2
ответ дан 31 October 2019 в 16:00

Можно сохранить элементы массива подряд или столбец следующим образом:

>>> a = np.array([1, 2, 3])[:, None] # stores in rows
>>> a
array([[1],
       [2],
       [3]])

>>> b = np.array([1, 2, 3])[None, :] # stores in columns
>>> b
array([[1, 2, 3]])
1
ответ дан 31 October 2019 в 16:00

Другие вопросы по тегам:

Похожие вопросы: