Python Forum

Full Version: Einsum- ValueError
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I don't know why I getting error:
Error:
ValueError: operand has more dimensions than subscripts given in einstein sum, but no '...' ellipsis provided to broadcast the extra dimensions.
My code:
from timeit import timeit
import numpy as np
A=np.random.rand(2,2)
B=np.random.rand(2,2)
print(np.einsum('ij,ij->ij', A, B))
print(np.inner(A, B))
print("Test c1 ",timeit('np.einsum("i,i-",np.random.rand(2,2),np.random.rand(2,2))',setup='import numpy as np',number=100))
print("Test c2 ",timeit('np.inner((np.random.rand(2,2)),np.random.rand(2,2))',setup='import numpy as np',number=100))
Please post complete, verbatim error message. It contains valuable information
OK.
Error:
Traceback (most recent call last): File "<ipython-input-44-981ebe7a58f3>", line 1, in <module> runfile('C:/Users/Paweł-Kusz/Desktop/zadania python-20190326T002157Z-001/zadania python/funkcja einsum-numpy.py', wdir='C:/Users/Paweł-Kusz/Desktop/zadania python-20190326T002157Z-001/zadania python') File "C:\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 704, in runfile execfile(filename, namespace) File "C:\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 108, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "C:/Users/Paweł-Kusz/Desktop/zadania python-20190326T002157Z-001/zadania python/funkcja einsum-numpy.py", line 26, in <module> print("Test c1 ",timeit('np.einsum("i,i-",np.random.rand(2,2),np.random.rand(2,2))',setup='import numpy as np',number=100)) File "C:\Anaconda3\lib\timeit.py", line 232, in timeit return Timer(stmt, setup, timer, globals).timeit(number) File "C:\Anaconda3\lib\timeit.py", line 176, in timeit timing = self.inner(it, self.timer) File "<timeit-src>", line 6, in inner File "C:\Anaconda3\lib\site-packages\numpy\core\einsumfunc.py", line 1228, in einsum return c_einsum(*operands, **kwargs) ValueError: operand has more dimensions than subscripts given in einstein sum, but no '...' ellipsis provided to broadcast the extra dimensions.
This is a guess, and may be totally off the wall:
print("Test c1 ",timeit('np.einsum("i->...i-",np.random.rand(2,2),np.random.rand(2,2))',setup='import numpy as np',number=100))