numpy.ufunc.outer#

method

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

Apply the ufuncop to all pairs (a, b) with a inA and b inB.

LetM=A.ndim,N=B.ndim. Then the result,C, ofop.outer(A,B) is an array of dimension M + N such that:

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

ForA andB one-dimensional, this is equivalent to:

r=empty(len(A),len(B))foriinrange(len(A)):forjinrange(len(B)):r[i,j]=op(A[i],B[j])# op = ufunc in question
Parameters:
Aarray_like

First array

Barray_like

Second array

kwargsany

Arguments to pass on to the ufunc. Typicallydtype orout.Seeufunc for a comprehensive overview of all available arguments.

Returns:
rndarray

Output array

See also

numpy.outer

A less powerful version ofnp.multiply.outer thatravels all inputs to 1D. This exists primarily for compatibility with old code.

tensordot

np.tensordot(a,b,axes=((),())) andnp.multiply.outer(a,b) behave same for all dimensions of a and b.

Examples

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

A multi-dimensional example:

>>>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]]]])
On this page