在一个项目中,我必须在 python 中存储一个对象的一系列连续旋转。我打算使用scipy.spatial.transform.Rotation objects存储它们。
我注意到有两个选项可用。
我将多个 Rotation 对象存储在一个数组中,每个 Rotation 对象都包含我序列的一个旋转。
我将每个旋转都存储在同一个 Rotation 对象中,有效地将它们堆叠在一个对象中。
我想知道这些方法在计算速度和数据访问速度方面的权衡是什么。最终应该首选哪种方法。
在我的特殊情况下:
- 我有一组相当大的旋转(大约 2'000'000)。
- 我想尽可能加快我的数据的访问时间。
- 我不关心内存使用情况,所以我愿意以空间换取速度。
- 我不打算将我的轮换应用于任何事情。这纯粹是为了存储使用。
- 我将不得不以四元数 (.as_quat()) 和欧拉角 (.as_euler()) 的形式访问我的旋转
- 我将不得不在某个时候将我的数据拆分成更小的块(而且我知道,如果我使用单个 Rotation 对象,我可能必须在每个块上重新创建才能正确拆分我的数据)
我在找什么:
- 访问时间最快的方法
- python中更接近良好实践和编码约定的方法
提前致谢。