Psi作为ND numpy数组存储在空间网格上(例如,如果N = 2 Psi是2D复数值数组)。使用numpy计算以下积分的最佳方法是什么?
我假设它将是np.tensordot
和np.sum
的组合,但是我无法找到一种方法,而不必依靠某些繁重的循环(对于大N来说很麻烦)。
答案 0 :(得分:0)
解决方案是:
NI = 2*(N-1) # number of integrals
tensor = np.multiply.outer(psi, psi.conj())
for i in range(N):
axis = -1 if i < N/2 else -2
tensor = np.sum(tensor, axis=axis)
rho = tensor * dx**N