Skip to content

Instantly share code, notes, and snippets.

@kpykc
Forked from mblondel/einsum.py
Created October 5, 2016 11:40
Show Gist options
  • Save kpykc/c6f0a6f41749ad2cbaf5a403c1f22e54 to your computer and use it in GitHub Desktop.
Save kpykc/c6f0a6f41749ad2cbaf5a403c1f22e54 to your computer and use it in GitHub Desktop.
Einstein sum notation
import numpy as np
rng = np.random.RandomState(0)
print "Trace"
A = rng.rand(3, 3)
print np.trace(A)
print np.einsum("ii", A)
print
print "Dot product"
a = rng.rand(5)
b = rng.rand(5)
print np.dot(a, b)
print np.einsum("i,i", a, b)
print
print "Outer product"
print np.outer(a, b)
print np.einsum("i,j", a, b)
print
print "Identity"
B = rng.rand(3, 2)
print B
print np.einsum("ij", B)
print
print "Transpose"
print B.T
print np.einsum("ji", B)
print
print "Sum"
print np.einsum('i->', a)
print np.sum(a)
print
print "Diag"
print np.einsum("ii->i", A)
print np.diag(A)
print
print "Matrix product"
print np.einsum("ij,jk", A, B)
print np.dot(A, B)
print
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment