Producto tensor externo rápido en numpy

Tengo dos matrices numpy:

x of shape ((d1,...,d_m)) 
y of shape ((e_1,...e_n)) 

Me gustaría formar el producto tensor externo, que es la matriz numpy

z of shape ((d1,...,d_m,e_1,...,e_n))

tal que

z[i_1,...,i_n,i_{n+1}...,i_{m+n}] == x[i_1,...i_m]*y[i_{m+1},...,i_{m+n}]

Tengo que realizar la multiplicación externa anterior varias veces, así que me gustaría acelerar esto tanto como sea posible.