Produto eficiente de matriz 1D e matriz 3D ao longo de uma dimensão - NumPy

Eu tenho duas matrizes numpy:

Uma matriz 1D chamada t de forma (70L) com elemento chamado digamos tiUma matriz 3D chamada I com forma (70L, 1024L, 1024L), com cada elemento chamado Ii. Ii são, portanto, de dimensão (1024L, 1024L)

Gostaria de criar um produto da matriz dois ao longo da primeira dimensão, ou seja:

tI = t1*I1,t2*I2,...,tN*IN

como obter novamente uma nova matriz de dimensão (70L, 1024L, 1024L) e, em seguida, pegue a soma ao longo da primeira dimensão para obter uma matriz de dimensão (1024L, 1024L):

tsum = t1*I1 + t2*I2 + ... +tN*IN

No momento, estou satisfeito em fazer o seguinte:

tI = np.asarray([t[i]*I[i,:,:] for i in range(t.shape[0])])
tsum = np.sum(tI,axis=0)

Mas vai ser um pouco lento se as dimensões da minha matriz estiverem aumentando. Eu queria saber se existe uma função numpy ou scipy, mais otimizada para essa tarefa específica?

Agradecemos antecipadamente a qualquer link ou informação.

Greg

questionAnswers(2)

yourAnswerToTheQuestion