Массив 1D: матрица строк или столбцов по умолчанию? - PullRequest
0 голосов
/ 23 сентября 2018

В следующем коде я создаю 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]]

Теперь у меня есть несколько вопросов:

  1. a = np.array([1,2,3,4,5]), действительно ли это создает строкуmatrix?

  2. print("a.T: ", a.T) неявно ли это преобразовывает матрицу строк в матрицу столбцов?Или это действительно остается неизменным?

  3. b = np.array([[1,2,3,4,5]]) действительно ли это создает матрицу строк?

  4. print("b.T: ", b.T) это преобразовывает матрицу строк в матрицу столбцов?Я имею в виду, я прав?

  5. Или, если я создаю пустой массив только с одной скобкой, нет никакой проблемы или матрицы строк или столбцов вообще?

И еще, при выполнении операции с точкой я получаю следующее:

Код:

print(b.dot(a))
print(b.dot(a.T))

Вывод:

[55]
[55]

Но, насколько мне известно, функция dot () выполняет задачу умножения матриц.Если это так, разве не должно быть ошибки в одном из случаев, так как количество столбцов первой матрицы должно быть равно количеству строк матрицы секунд, согласно правилу умножения матрицы?

1 Ответ

0 голосов
/ 23 сентября 2018
  1. Нет, это не матрица строк
  2. Нет, поскольку a не является матрицей строк
  3. Да, предполагая "матрица строк" Вы имеете в виду "2D-массив с одной строкой и N столбцами"
  4. Да, предполагая, что "матрица столбцов" Вы имеете в виду "2D-массив с N строками иодин столбец "
  5. С одним набором скобок вы вообще не создаете" матрицу "(читай: 2D-массив).

  6. (?) В документации по np.dot ясно, что в некоторых особых случаях это только умножение матриц.

...