numpy elementwise outer product
I want to do the element-wise outer product of two 2d arrays in numpy. A.shape = (100, 3) # A numpy ndarray B.shape = (100, 5) # A numpy ndarray C = element_wise_outer_product(A, B) # A function that does the trick C.shape = (100, 3, 5) # This should be the result C[i] = np.outer(A[i], B[i]) # This should be the result A naive implementation can the following. tmp = [] for i in range(len(A): outer_product = np.outer(A[i], B[i]) tmp.append(outer_product) C = np.array(tmp) A better solution inspired from stack overflow. big_outer = np.multiply.outer(A, B) tmp = np.swapaxes(tmp, 1, 2) C_tmp =