2016-12-03 1 views
0

나는 5 차원 매트릭스 v이 있다고 가정하고 지금은 새로운 매트릭스 D 내가 우아하게 NumPy와이 작업을 수행하려면 어떻게numpy에서 다음 행렬을 우아하게 만드는 방법은 무엇입니까?

D[a, b, n, m, d] = v[a, b, n, n, d]-v[a, b, m, m, d]. 

을 충족 싶어?

+1

? 어떤 종류의 축소/대각선 합계? – Divakar

+0

원본 게시물에 매핑 규칙을 보여주었습니다. 모호성이 있습니까? –

+1

죄송합니다. 나는 그것을 보지 못합니다. 희망을 나는 눈 검진이 필요하지 않습니다! – Divakar

답변

0

처럼 바꿀 수 있습니다

`D` (4D)에`v` (5D)에서 갈 수있는 매핑 기준은 무엇
D = np.einsum('abiic->abic', v)[..., None, :] - np.einsum('abiic->abic', v)[:, :, None, ...] 
+0

'v'가 '5D'가 아니 었습니까? ''aiib '라는이 음과 표기법으로''4D''를 대신 사용하는 것으로 보입니다. – Divakar

+0

지적 해 주셔서 감사합니다. 그에 따라 편집 됨. –

0

어떻게 치수를 변경 하시겠습니까? 당신은 내가이 작업을 수행 할 수 있습니다 einsum 발견이

import numpy as np 

a, b, n, d = 2, 3, 4, 5 
v = np.zeros((a, b, n, n, d)) 
D = v.reshape((a, b, n*n, d)) 
+0

올바른 결과를 얻지 못하는 것 같습니다. –

관련 문제