2014-05-15 3 views
1

저는 두 개의 시간 종속 2D 행렬의 행렬 곱셈 (내적 곱)을 수행하여 시간 의존적 인 2D 행렬 1 개로 끝나는 효율적인 방법을 찾고 있습니다.탁구 시간 의존 2 차원 행렬 곱셈

예를 들어

:

a = np.zeros([7200,13,4]) 
b = np.zeros([7200,4,7]) 

그리고 나는 그러나 이것은 3D 매트릭스 대신 나에게 4D 매트릭스를 산출,

c = np.zeros([7200,13,7]) 

이미 np.tensordot 발견으로 끝내고 싶다. 또한 다른 numpy 함수가 나에게 필요한 모양을 만들어주지 못했습니다. 그래서 for-loops를 사용하지 않고이 행렬 곱셈을 수행 할 수있는 방법이 있는지 궁금합니다.

안부,

티모시 반 Daele

+0

조금 더 깊게 파고 있었고 numpy에서 einsum 함수를 사용하여 효율적인 솔루션을 찾았다 고 생각합니다. 'a = np.zeros ([7200,13,4]) +1 ' 'b = np.zeros ([7200,4,7]) +1' 'c = np.einsum ('ijk , ikl-> ijl '는 A, B)는' 는'' 을 c.shape' (7200, 13, 7)' 안부, 티모시 반 Daele이 – TimothyVD

+0

그래서 당신이 질문을 삭제할 수 있습니까? – usethedeathstar

+0

답장으로 답글을 쓰고 (시간 제한이있는 경우)이 페이지에 대한 향후 방문자를 돕기 위해 수락 한 것으로 표시해야합니다. – YXD

답변

1

난 그냥 조금 더 깊이 팠와 나는 NumPy와 기능 einsum을 발견했다. 이것은 벡터 곱셈을 할 수있는 많은 자유를줍니다.

a = np.zeros([7200,13,4]) 
b = np.zeros([7200,4,7]) 

c = np.einsum('ijk,ikl->ijl',a,b) 
c.shape (7200, 13, 7)