Python中惯性张量的快速计算
我需要执行一个非常快速的in计算 问题如下: 假设Python中惯性张量的快速计算,python,performance,Python,Performance,我需要执行一个非常快速的in计算 问题如下: 假设xyz是一个形状数组:(样本,原子,3),它描述每个样本中每个原子的3笛卡尔坐标 每个样品中的原子必须分裂成一组分子。我需要每个样本中每个分子的惯性张量 每个分子都包含n个原子,它们的排列方式使它们组合在一起。即: numpy.array( numpy.split(xyz, atoms/n, axis=1).shape ) 返回形状数组:(分子数、样本数、每个分子的原子数,3),其中第一个索引在分子上运行 注: 这与所解决的问题非常相似
xyz
是一个形状数组:(样本,原子,3)
,它描述每个样本中每个原子的3
笛卡尔坐标
每个样品中的原子必须分裂成一组分子。我需要每个样本中每个分子的惯性张量
每个分子都包含n
个原子,它们的排列方式使它们组合在一起。即:
numpy.array( numpy.split(xyz, atoms/n, axis=1).shape )
返回形状数组:(分子数、样本数、每个分子的原子数,3),其中第一个索引在分子上运行
注:
- 这与所解决的问题非常相似,但他们计算整个系统的惯性张量,而我需要它各部分的惯性张量(系统中每个分子的惯性张量)
- 最好获得一组惯性张量
- 我认为这是一个很好的选择(但我发现很难实施)
- 我可以很快得到原子质量的数组,而且没有问题
- 如果有帮助的话,
samples
的大小约为100到500,atoms
的大小约为20000(但该操作在许多块中运行,总共产生约1E5个样本)
那么,您的问题是使用循环对易于编写的算法进行矢量化以获得性能?在这里,我只需要使用像numpy这样的JIT编译器。例如或