在一维数组中,如何使用NumPy对成对的元素进行重新排列(换位)?
我正在处理一个连续的一维 ndarray 的坐标序列,形式为 [x1, y1, z1, x2, y2, z2, ...]。现在需要把顺序从 X,Y,Z 交换为 X,Z,Y,使输出数组的形式变为 [x1, z1, y1, x2, z2, y2, ...]。有没有简单的方法,使用NumPy的某个数组操作来实现这一点,而不需要再创建一个数组来重新排列索引?还是说创建第二个索引数组才是实现此目标的最佳方式?
解决方案
这似乎比 Henry的实现 快大约十倍(44 μs对比440 μs,针对“~100.000 32-bit floats”的情况)
arr[1::3], arr[2::3] = arr[2::3], arr[1::3].copy()
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。