NumPy Advanced

Advanced NumPy operations and linear algebra.

Broadcasting

Broadcasting rules
a = np.array([[1], [2], [3]])
b = np.array([10, 20, 30])
result = a + b

Example
[[1],    [[10, 20, 30],
 [2],  +  [10, 20, 30],
 [3]]     [10, 20, 30]]

Linear Algebra

Matrix multiplication
np.dot(a, b)
a @ b

Transpose
matrix.T

Inverse
np.linalg.inv(matrix)

Determinant
np.linalg.det(matrix)

Eigenvalues
eigenvalues, eigenvectors = np.linalg.eig(matrix)

Random Numbers

Random values
np.random.rand(3, 3)
np.random.randn(3, 3)

Random integers
np.random.randint(0, 10, size=5)

Random choice
np.random.choice([1, 2, 3, 4], size=3)

Set seed
np.random.seed(42)

Stacking Arrays

Vertical stack
np.vstack([arr1, arr2])

Horizontal stack
np.hstack([arr1, arr2])

Concatenate
np.concatenate([arr1, arr2], axis=0)

Split array
np.split(arr, 3)