Инициализировать вектор строки Sympy без транспонирования

#sympy

#сочувствие

Вопрос:

Инициализация вектора с помощью sympy.Matrix([1, 2, 3, 4]) создает матрицу (4, 1), в отличие от numpy, где это было бы (1, 4). Выполнение sympy.Matrix([[1], [2], [3], [4]]) инициализирует ту же самую матрицу (4, 1). Так что я должен сделать sympy.Matrix([1, 2, 3, 4]).T , чтобы получить вектор строк. Есть ли способ сделать это без транспонирования?
Я не смог найти ничего о векторах строк или (1, n) матрицах в документации.

Комментарии:

1. Что не так с использованием .T ?

2. @OscarBenjamin это казалось скорее взломом, чем идиоматическим способом сделать это

3. Я не думаю, что это «хак». Однако вы можете написать код так, как вам нравится.

Ответ №1:

Из документации

 To make it easy to make column vectors, a list 
of elements is considered to be a column vector.
 

Вектору строки требуется только один дополнительный набор []

 sympy.Matrix([[1, 2, 3, 4]])
 

Не используйте np.matrix в качестве модели ни для чего. Это было дополнение к пробелу для своенравных программистов MATLAB 🙂

больше примеров использования на

https://docs.sympy.org/latest/modules/matrices/matrices.html