__matmul__¶
- array.__matmul__(other: array, /) array¶
Computes the matrix product.
Note
The
matmulfunction must implement the same semantics as the built-in@operator (see PEP 465).- Parameters:
self (array) – array instance. Should have a numeric data type. Must have at least one dimension. If
selfis one-dimensional having shape(M,)andotherhas more than one dimension,selfmust be promoted to a two-dimensional array by prepending1to its dimensions (i.e., must have shape(1, M)). After matrix multiplication, the prepended dimensions in the returned array must be removed. Ifselfhas more than one dimension (including after vector-to-matrix promotion),shape(self)[:-2]must be compatible withshape(other)[:-2](after vector-to-matrix promotion) (see Broadcasting). Ifselfhas shape(..., M, K), the innermost two dimensions form matrices on which to perform matrix multiplication.other (array) – other array. Should have a numeric data type. Must have at least one dimension. If
otheris one-dimensional having shape(N,)andselfhas more than one dimension,othermust be promoted to a two-dimensional array by appending1to its dimensions (i.e., must have shape(N, 1)). After matrix multiplication, the appended dimensions in the returned array must be removed. Ifotherhas more than one dimension (including after vector-to-matrix promotion),shape(other)[:-2]must be compatible withshape(self)[:-2](after vector-to-matrix promotion) (see Broadcasting). Ifotherhas shape(..., K, N), the innermost two dimensions form matrices on which to perform matrix multiplication.
- Returns:
out (array) –
if both
selfandotherare one-dimensional arrays having shape(N,), a zero-dimensional array containing the inner product as its only element.if
selfis a two-dimensional array having shape(M, K)andotheris a two-dimensional array having shape(K, N), a two-dimensional array containing the conventional matrix product and having shape(M, N).if
selfis a one-dimensional array having shape(K,)andotheris an array having shape(..., K, N), an array having shape(..., N)(i.e., prepended dimensions during vector-to-matrix promotion must be removed) and containing the conventional matrix product.if
selfis an array having shape(..., M, K)andotheris a one-dimensional array having shape(K,), an array having shape(..., M)(i.e., appended dimensions during vector-to-matrix promotion must be removed) and containing the conventional matrix product.if
selfis a two-dimensional array having shape(M, K)andotheris an array having shape(..., K, N), an array having shape(..., M, N)and containing the conventional matrix product for each stacked matrix.if
selfis an array having shape(..., M, K)andotheris a two-dimensional array having shape(K, N), an array having shape(..., M, N)and containing the conventional matrix product for each stacked matrix.if either
selforotherhas more than two dimensions, an array having a shape determined by Broadcastingshape(self)[:-2]againstshape(other)[:-2]and containing the conventional matrix product for each stacked matrix.The returned array must have a data type determined by Type Promotion Rules.
Note
Results must equal the results returned by the equivalent function
matmul().Raises
if either
selforotheris a zero-dimensional array.if
selfis a one-dimensional array having shape(K,),otheris a one-dimensional array having shape(L,), andK != L.if
selfis a one-dimensional array having shape(K,),otheris an array having shape(..., L, N), andK != L.if
selfis an array having shape(..., M, K),otheris a one-dimensional array having shape(L,), andK != L.if
selfis an array having shape(..., M, K),otheris an array having shape(..., L, N), andK != L.