import numpy as np
# Vector: shape (3,)
vec1 = np.array([1.0, 1.0, 1.0])
# 3D tensor with shape (2, 3, 4) in column-major order
data = np.array([
1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
9.0, 10.0, 11.0, 12.0,
13.0, 14.0, 15.0, 16.0,
17.0, 18.0, 19.0, 20.0,
21.0, 22.0, 23.0, 24.0
])
# Reshape using 'F' (Fortran/column-major) order
mat3d = data.reshape((2, 3, 4), order='F')
# Dot product: contracts over dimension 1 of mat3d with vec1
result1 = np.tensordot(vec1, mat3d, axes=([0], [1]))
# Or equivalently using einsum notation:
# result1 = np.einsum('i,jik->jk', vec1, mat3d)
print("Result shape:", result1.shape) # (2, 4)
print("Result:")
print(result1)
aW1wb3J0IG51bXB5IGFzIG5wCgojIFZlY3Rvcjogc2hhcGUgKDMsKQp2ZWMxID0gbnAuYXJyYXkoWzEuMCwgMS4wLCAxLjBdKQoKIyAzRCB0ZW5zb3Igd2l0aCBzaGFwZSAoMiwgMywgNCkgaW4gY29sdW1uLW1ham9yIG9yZGVyCmRhdGEgPSBucC5hcnJheShbCiAgICAxLjAsIDIuMCwgMy4wLCA0LjAsCiAgICA1LjAsIDYuMCwgNy4wLCA4LjAsCiAgICA5LjAsIDEwLjAsIDExLjAsIDEyLjAsCiAgICAxMy4wLCAxNC4wLCAxNS4wLCAxNi4wLAogICAgMTcuMCwgMTguMCwgMTkuMCwgMjAuMCwKICAgIDIxLjAsIDIyLjAsIDIzLjAsIDI0LjAKXSkKCiMgUmVzaGFwZSB1c2luZyAnRicgKEZvcnRyYW4vY29sdW1uLW1ham9yKSBvcmRlcgptYXQzZCA9IGRhdGEucmVzaGFwZSgoMiwgMywgNCksIG9yZGVyPSdGJykKCiMgRG90IHByb2R1Y3Q6IGNvbnRyYWN0cyBvdmVyIGRpbWVuc2lvbiAxIG9mIG1hdDNkIHdpdGggdmVjMQpyZXN1bHQxID0gbnAudGVuc29yZG90KHZlYzEsIG1hdDNkLCBheGVzPShbMF0sIFsxXSkpCgojIE9yIGVxdWl2YWxlbnRseSB1c2luZyBlaW5zdW0gbm90YXRpb246CiMgcmVzdWx0MSA9IG5wLmVpbnN1bSgnaSxqaWstPmprJywgdmVjMSwgbWF0M2QpCgpwcmludCgiUmVzdWx0IHNoYXBlOiIsIHJlc3VsdDEuc2hhcGUpICAjICgyLCA0KQpwcmludCgiUmVzdWx0OiIpCnByaW50KHJlc3VsdDEpCg==