numpy.linalg.tensorinv#
- linalg.tensorinv(a,ind=2)[source]#
Compute the ‘inverse’ of an N-dimensional array.
The result is an inverse fora relative to the tensordot operation
tensordot(a,b,ind), i. e., up to floating-point accuracy,tensordot(tensorinv(a),a,ind)is the “identity” tensor for thetensordot operation.- Parameters:
- aarray_like
Tensor to ‘invert’. Its shape must be ‘square’, i. e.,
prod(a.shape[:ind])==prod(a.shape[ind:]).- indint, optional
Number of first indices that are involved in the inverse sum.Must be a positive integer, default is 2.
- Returns:
- bndarray
a’s tensordot inverse, shape
a.shape[ind:]+a.shape[:ind].
- Raises:
- LinAlgError
Ifa is singular or not ‘square’ (in the above sense).
See also
Examples
>>>importnumpyasnp>>>a=np.eye(4*6)>>>a.shape=(4,6,8,3)>>>ainv=np.linalg.tensorinv(a,ind=2)>>>ainv.shape(8, 3, 4, 6)>>>rng=np.random.default_rng()>>>b=rng.normal(size=(4,6))>>>np.allclose(np.tensordot(ainv,b),np.linalg.tensorsolve(a,b))True
>>>a=np.eye(4*6)>>>a.shape=(24,8,3)>>>ainv=np.linalg.tensorinv(a,ind=1)>>>ainv.shape(8, 3, 24)>>>rng=np.random.default_rng()>>>b=rng.normal(size=24)>>>np.allclose(np.tensordot(ainv,b,1),np.linalg.tensorsolve(a,b))True
On this page