В следующем коде я создаю 2 массива.Один является 1D, а другой 2D.
Когда я перемещаю 1D массив, он остается прежним. не изменяется от матрицы строк к матрице столбцов. Когда я перемещаю 2D-массив, изменяется от матрицы строк к матрице столбцов .
Код:
a = np.array([1,2,3,4,5])
print("a: ", a)
print("a.T: ", a.T)
b = np.array([[1,2,3,4,5]])
print("b: ", b)
print("b.T: ", b.T)
Вывод:
a: [1 2 3 4 5]
a.T: [1 2 3 4 5]
b: [[1 2 3 4 5]]
b.T: [[1]
[2]
[3]
[4]
[5]]
Теперь у меня есть несколько вопросов:
a = np.array([1,2,3,4,5])
, действительно ли это создает строкуmatrix?
print("a.T: ", a.T)
неявно ли это преобразовывает матрицу строк в матрицу столбцов?Или это действительно остается неизменным?
b = np.array([[1,2,3,4,5]])
действительно ли это создает матрицу строк?
print("b.T: ", b.T)
это преобразовывает матрицу строк в матрицу столбцов?Я имею в виду, я прав?
Или, если я создаю пустой массив только с одной скобкой, нет никакой проблемы или матрицы строк или столбцов вообще?
И еще, при выполнении операции с точкой я получаю следующее:
Код:
print(b.dot(a))
print(b.dot(a.T))
Вывод:
[55]
[55]
Но, насколько мне известно, функция dot () выполняет задачу умножения матриц.Если это так, разве не должно быть ошибки в одном из случаев, так как количество столбцов первой матрицы должно быть равно количеству строк матрицы секунд, согласно правилу умножения матрицы?