Función
Qué hace
Uso típico
numpy.dot
Producto punto entre vectores y multiplicación matriz‑vector/matriz‑matriz (2D). Para tensores >2D su semántica puede sorprender; hoy suele preferirse @/matmul. [numpy.org]
c = np.dot(A, B) o c = A @ B para 2D. [numpy.org]
numpy.linalg.multi_dot
Elige automáticamente el orden óptimo para encadenar varios productos y minimiza FLOPs. [numpy.org]
y = np.linalg.multi_dot([A, B, C]) en cadenas largas. [numpy.org]
numpy.vdot
Producto escalar conjugado que aplana los argumentos antes de multiplicar (útil con complejos). [geeksforgeeks.org]
s = np.vdot(x, y) para escalar complejo realista. [geeksforgeeks.org]
numpy.vecdot
Producto punto vectorial sobre el último eje (no aplana); nuevo desde NumPy 2.0. [numpy.org]
p = np.vecdot(V, n) para lotes de vectores vs. una normal. [numpy.org]
numpy.linalg.vecdot
Igual propósito que numpy.vecdot pero Array API compatible y con parámetro axis explícito. [numpy.org]
p = np.linalg.vecdot(V, n, axis=-1) cuando sigues el estándar Array API. [numpy.org]
numpy.inner
Producto interno (suma de productos sobre el último eje). [numpy.org]
s = np.inner(a, b) para vectores/lotes. [numpy.org]
numpy.exterior
No existe en NumPy. El producto “exterior” se llama numpy.outer (o numpy.linalg.outer). [numpy.org], [numpy.org]
Usa np.outer(a, b) para producto exterior. [numpy.org]
numpy.linalg.outer
Producto exterior de dos vectores 1D (variante Array API). [numpy.org]
M = np.linalg.outer(a, b) (ambos 1D). [numpy.org]
numpy.matmul
Multiplicación matricial (soporta lotes y @). [numpy.org]
C = A @ B o np.matmul(A, B) para 2D/ND. [numpy.org]
numpy.linalg.matmul
Igual que numpy.matmul pero Array API compatible (p. ej., no admite escalares). [numpy.org]
C = np.linalg.matmul(A, B) en código alineado con Array API. [numpy.org]
numpy.matvec
Ufunc para producto matriz‑vector con lotes; nuevo (NumPy ≥2.2). [numpy.org]
y = np.matvec(A, v); para lotes, ordena ejes y llama directo. [numpy.org]
numpy.vecmat
Ufunc para producto vector‑matriz con lotes; nuevo (NumPy ≥2.2). [numpy.org]
y = np.vecmat(v, A); útil en proyecciones. [numpy.org]
numpy.tensordot
Contracción de tensores a lo largo de ejes dados (generaliza dot). [docs.scipy.org]
C = np.tensordot(A, B, axes=([1,0],[0,1])). [docs.scipy.org]
numpy.linalg.tensordot
Variante Array API de tensordot (mismas ideas, API compatible). [numpy.org]
C = np.linalg.tensordot(A, B, axes=2). [numpy.org]
numpy.einsum
Contracciones con notación de Einstein; muy flexible y eficiente. [numpy.org]
np.einsum('ij,jk->ik', A, B). [numpy.org]
numpy.einsum_path
Calcula el orden de contracción óptimo para un einsum (greedy/optimal). [numpy.org]
path = np.einsum_path('ij,jk,kl->il', A,B,C) y luego optimize=path[0]. [stackoverflow.com]
numpy.linalg.matrix_power
Eleva una matriz cuadrada a potencia entera (usa exponenciación rápida; invierte si n<0). [numpy.org]
A2 = np.linalg.matrix_power(A, 2); A_1 = np.linalg.matrix_power(A, -1). [numpy.org]
numpy.kron
Producto de Kronecker de dos arrays (bloques). [numpy.org]
K = np.kron(A, B) en construcción de sistemas/operadores. [numpy.org]
numpy.linalg.cross
Producto vectorial 3D (Array API); opera sobre el eje indicado. [numpy.org]
u_x_v = np.linalg.cross(u, v, axis=-1) para lotes. [numpy.org]
numpy.linalg.cholesky
Factorización de Cholesky (A = L·L*), para matrices SPD. [numpy.org]
L = np.linalg.cholesky(A) para resolver sistemas SPD. [numpy.org]
numpy.linalg.qr
Descomposición QR (A=Q·R). [numpy.org]
Q, R = np.linalg.qr(A) (p. ej., mínimos cuadrados rápidos). [numpy.org]
numpy.linalg.svd
SVD: A = U·diag(S)·Vh; soporta lotes. [numpy.org]
U, S, Vh = np.linalg.svd(A, full_matrices=False). [numpy.org]
numpy.linalg.svdvals
Devuelve solo los valores singulares (equivalente a svd(..., compute_uv=False)). [numpy.org]
s = np.linalg.svdvals(A) para rango/condición rápidos. [numpy.org]
numpy.linalg.eig
Autovalores y autovectores de matriz general (posible resultado complejo). [numpy.org]
w, V = np.linalg.eig(A). [numpy.org]
numpy.linalg.eigh
Autovalores/autovectores para matrices simétricas/Hermitianas (más estable). [numpy.org]
w, V = np.linalg.eigh(S) con S simétrica. [numpy.org]
numpy.linalg.eigvals
Solo autovalores de matriz general. [numpy.org]
w = np.linalg.eigvals(A) cuando no necesitas V. [numpy.org]
numpy.linalg.eigvalsh
Solo autovalores para matrices simétricas/Hermitianas. [numpy.org]
w = np.linalg.eigvalsh(S) para espectros reales. [numpy.org]
numpy.linalg.norm
Norma de vector o matriz (L1, L2, ∞, Frobenius, nuclear, etc.). [numpy.org]
nv = np.linalg.norm(x, ord=2); nm = np.linalg.norm(A, ord='fro'). [numpy.org]
numpy.linalg.matrix_norm
Norma matricial explícita (Array API): 'fro', 'nuc', 1, ∞, 2, etc. [numpy.org]
nm = np.linalg.matrix_norm(A, ord=2) (norma espectral). [numpy.org]
numpy.linalg.vector_norm
Norma vectorial explícita (Array API) sobre eje/s indicados. [numpy.org]
nv = np.linalg.vector_norm(x, ord=np.inf) o por ejes. [numpy.org]
numpy.linalg.cond
Número de condición de una matriz (sensibilidad numérica). [numpy.org]
kappa = np.linalg.cond(A) para diagnosticar estabilidad. [numpy.org]
numpy.linalg.det
Determinante (vía LU). [numpy.org]
d = np.linalg.det(A) (mejor slogdet si hay desbordes). [numpy.org]
numpy.linalg.matrix_rank
Rango numérico (vía SVD). [numpy.org]
r = np.linalg.matrix_rank(A) para dependencia lineal. [numpy.org]
numpy.linalg.slogdet
Devuelve `(signo, log(
det
numpy.trace
Traza: suma de los elementos de la diagonal (ejes elegibles). [numpy.org]
t = np.trace(A) o sobre lotes eligiendo axis1/axis2. [numpy.org]
numpy.linalg.trace
Variante Array API: traza usando los dos últimos ejes por defecto. [numpy.org]
t = np.linalg.trace(A) para pilas (..., M, N). [numpy.org]
numpy.linalg.solve
Resuelve A·x = b para A cuadrada e invertible. [numpy.org]
x = np.linalg.solve(A, b) (preferible a inv(A)@b). [numpy.org]
numpy.linalg.tensorsolve
Resuelve ecuaciones tensoriales A · X = b reordenando a 2D. [numpy.org]
X = np.linalg.tensorsolve(A, b, axes=...). [numpy.org]
numpy.linalg.lstsq
Mínimos cuadrados para sistemas sobre/subdeterminados. [numpy.org]
x, *_ = np.linalg.lstsq(A, b, rcond=None). [numpy.org]
numpy.linalg.inv
Inversa de una matriz cuadrada. Evitar para resolver sistemas. [numpy.org]
Ainv = np.linalg.inv(A) (usar solve cuando sea posible). [numpy.org]
numpy.linalg.pinv
Pseudo‑inversa de Moore‑Penrose (vía SVD). [numpy.org]
Ap = np.linalg.pinv(A) para matrices mal condicionadas. [numpy.org]
numpy.linalg.tensorinv
“Inversa” de un tensor (generaliza inv reagrupando ejes). [numpy.org]
Tin = np.linalg.tensorinv(A, ind=...). [numpy.org]
numpy.diagonal
Extrae una diagonal (o la pone en matriz) seleccionando ejes axis1/axis2. [numpy.org]
d = np.diagonal(A, offset=1); np.diag(v) para construir. [numpy.org]
numpy.linalg.diagonal
Variante Array API: diagonal tomando los dos últimos ejes por defecto. [numpy.org]
d = np.linalg.diagonal(A, offset=-1). [numpy.org]
numpy.linalg.matrix_transpose
Transpone cada matriz en el último par de ejes ((..., M, N)→(..., N, M)). Alias de numpy.matrix_transpose. [numpy.org]
AT = np.linalg.matrix_transpose(A); equivalente a A.swapaxes(-1,-2). [numpy.org]
numpy.linalg.LinAlgError
Excepción lanzada cuando una operación de álgebra lineal falla (p. ej., matriz singular). [docs.scipy.org]
Capturar: except np.linalg.LinAlgError: ... para manejar fallos numéricos. [docs.scipy.org]