В NumPy различие между матрицей-строкой и матрицей-столбцом заключается в форме (shape) и, следовательно, в том, как массив интерпретируется в операциях и broadcasting.

Матрица-строка:

  • ndim = 2
  • shape = (1, n) — одна строка, n столбцов
  • Индексация: M[0, j]
  • Используется, когда нужен двумерный объект с одной строкой, например для совместимости с 2D массивами при операциях

Пример:

import numpy as np
 
row = np.array([[1, 2, 3]])  # shape (1, 3)
row.ndim                      # 2

Матрица-столбец:

  • ndim = 2
  • shape = (n, 1) — n строк, один столбец
  • Индексация: M[i, 0]
  • Полезно для линейной алгебры, транспонирования и broadcasting по столбцам

Пример:

col = np.array([[1],
                [2],
                [3]])        # shape (3, 1)
col.ndim                      # 2

Ключевые моменты:

  • (1, n) и (n,) — визуально похожи, но (1, n) — 2D массив, пригоден для операций с 2D матрицами
  • (n, 1) — столбец, часто используется для умножения матриц: (n,1) * (1,m)(n,m)
  • Broadcasting зависит от формы: (1, n) можно складывать с (m, n) по строкам, (n, 1) — по столбцам