Функция outer
Функция outer вычисляет внешнее произведение
двух одномерных массивов (векторов). Результатом
является двумерная матрица, размером n x m,
где n и m - длины входных векторов.
Элемент матрицы с индексами (i, j) равен
произведению a[i] * b[j]. Функция особенно
полезна в линейной алгебре и машинном обучении при
построении матриц из векторов признаков.
Синтаксис
np.outer(a, b)
Параметр a - первый одномерный массив.
Параметр b - второй одномерный массив.
Функция возвращает двумерный массив формы
(len(a), len(b)).
Пример
Вычислим внешнее произведение двух числовых векторов:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
res = np.outer(a, b)
print(res)
Результат выполнения кода:
[[ 4 5 6]
[ 8 10 12]
[12 15 18]]
Пример
Внешнее произведение можно использовать для создания матрицы из вектора-строки и вектора-столбца:
import numpy as np
row = np.array([1, 2, 3, 4])
col = np.array([10, 20, 30])
matrix = np.outer(col, row)
print(matrix)
Результат выполнения кода:
[[ 10 20 30 40]
[ 20 40 60 80]
[ 30 60 90 120]]
Пример
Функция outer также работает с векторами,
содержащими числа с плавающей точкой:
import numpy as np
a = np.array([1.5, 2.5, 3.5])
b = np.array([0.5, 1.5])
res = np.outer(a, b)
print(res)
Результат выполнения кода:
[[0.75 2.25]
[1.25 3.75]
[1.75 5.25]]
Пример
Результат внешнего произведения можно использовать в дальнейших вычислениях, например, для суммирования по строкам или столбцам:
import numpy as np
a = np.array([2, 4, 6])
b = np.array([1, 3, 5])
outer = np.outer(a, b)
row_sums = outer.sum(axis=1)
col_sums = outer.sum(axis=0)
print("Outer product:")
print(outer)
print("Row sums:", row_sums)
print("Column sums:", col_sums)
Результат выполнения кода:
Outer product:
[[ 2 6 10]
[ 4 12 20]
[ 6 18 30]]
Row sums: [18 36 54]
Column sums: [12 36 60]