Матрицы чисел с плавающей точкой A и B имеют размеры (1000,120)
и (1000,120,3)
.
Я хочу умножить их так, чтобы результирующая матрица M имела размеры (1000, 120, 3) и логикабудь то M[0][0] = A[0][0] * B[0][0]
(с A[0][0]
скалярным и B[0][0]
массивом с 3 значениями.
Я могу сделать это с помощью циклов, но ищу питонский способ сделать это. Я попытался A * B
, np.dot(A, B)
и A @ B
, но ни один из них не дает ожидаемых результатов (поскольку я, вероятно, упускаю базовую концепцию).
ОБНОВЛЕНИЕ:
A = np.random.uniform(size=(1000,120))
B = np.random.uniform(size=(1000,120,3))
A*B # ValueError: operands could not be broadcast together with shapes (1000,120) (1000,120,3)
np.shape(np.dot(A,B)) # (1000,1000,3)
np.shape(A@B) # (1000,1000,3)
np.tensordot(A,B,axes=1) # ValueError: shape-mismatch for sum
A[..., None]*B # works, THANKS!