Spec-Zone.ru › NumPy 2.0

numpy.ufunc.outer

метод

ufunc.outer(A, B, /, **kwargs)

Примените ufunc op ко всем парам (a, b) с a в A и b в B.

Пусть M = A.ndim, N = B.ndim. Тогда результат, C, от op.outer(A, B) — это массив с размерностью M + N, такой что:

\[C[i_0, ..., i_{M-1}, j_0, ..., j_{N-1}] = op(A[i_0, ..., i_{M-1}], B[j_0, ..., j_{N-1}])\]

Для A и B одномерных, это эквивалентно:

r = empty(len(A),len(B))
for i in range(len(A)):
    for j in range(len(B)):
        r[i,j] = op(A[i], B[j])  # op = ufunc in question
Параметры:
Aarray_like

Первый массив

Barray_like

Второй массив

kwargsлюбые

Аргументы для передачи ufunc. Обычно dtype или out. См. ufunc для всестороннего обзора всех доступных аргументов.

Возвращаемое значение:
rndarray

Массив результата

См. также

numpy.outer

Менее мощная версия np.multiply.outer, которая ravel все входные данные до 1D. Она существует в основном для совместимости со старым кодом.

tensordot

np.tensordot(a, b, axes=((), ())) и np.multiply.outer(a, b) ведут себя одинаково для всех измерений a и b.

Примеры

>>> np.multiply.outer([1, 2, 3], [4, 5, 6])
array([[ 4,  5,  6],
       [ 8, 10, 12],
       [12, 15, 18]])

Пример с многомерными массивами:

>>> A = np.array([[1, 2, 3], [4, 5, 6]])
>>> A.shape
(2, 3)
>>> B = np.array([[1, 2, 3, 4]])
>>> B.shape
(1, 4)
>>> C = np.multiply.outer(A, B)
>>> C.shape; C
(2, 3, 1, 4)
array([[[[ 1,  2,  3,  4]],
        [[ 2,  4,  6,  8]],
        [[ 3,  6,  9, 12]]],
       [[[ 4,  8, 12, 16]],
        [[ 5, 10, 15, 20]],
        [[ 6, 12, 18, 24]]]])

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.ufunc.outer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API