В NumPy разница между одномерным массивом (1D array) и матрицей (2D array) в числе измерений (ndim) и способе интерпретации данных.
Одномерный массив (вектор):
ndim = 1shape = (n,)— только одна ось- Индексация одномерная:
a[i] - Элементы располагаются в последовательной линии памяти
- Арифметические операции выполняются поэлементно, broadcasting работает с другими массивами по правилам совместимости форм
Пример:
import numpy as np
v = np.array([1, 2, 3])
v.shape # (3,)
v.ndim # 1Матрица:
ndim = 2shape = (m, n)— две оси (строки и столбцы)- Индексация двумерная:
M[i, j] - Позволяет выполнять операции по строкам, по столбцам, применять линейную алгебру
- Broadcasting отличается от 1D: вектор можно вычесть из строк или столбцов с помощью согласования формы
Пример:
M = np.array([[1, 2, 3],
[4, 5, 6]])
M.shape # (2, 3)
M.ndim # 2Ключевые различия:
v.shape = (n,)vsM.shape = (m, n)- Одномерный массив не различает строки и столбцы, матрица — чётко различает
- Для линейной алгебры (умножение, транспонирование) удобно использовать 2D массивы
- Broadcasting зависит от числа измерений:
(3,)может вычитаться из(2,3)построчно, но не напрямую из(3,2)без reshape