我需要在inertia tensors中对Python进行非常快速的计算。
问题如下:
让xyz
为Numpy形状数组:(samples, atoms, 3)
,描述每个3
中每个atoms
的{{1}}笛卡尔坐标。
每个样本中的samples
必须分成一组分子。 我需要每个样本中每个分子的惯性张量。
每个分子都含有atoms
个原子,它们按照它们组合在一起的方式排序。那就是:
n
返回一个形状数组:(分子数,样本数,每分子原子数3),其中第一个指数在分子上运行。
注意:
numpy.array( numpy.split(xyz, atoms/n, axis=1).shape )
的大小约为100到500,samples
的大小约为20 000(但该操作在许多块中运行,总共产生大约1E5个样本)。