对于一个nx3的numpy数组,可以使用numpy的argsort函数按列进行排序,并利用numpy的切片功能实现记录该行中的数据。
具体步骤如下:
import numpy as np
array = np.array([[2, 1, 3], [5, 4, 6], [8, 7, 9]])
sorted_indices = np.argsort(array[:, 0]) # 按第一列排序,返回排序后的索引
sorted_array = array[sorted_indices] # 根据索引重新排序数组
sorted_array[:, 0] = array[:, 0] # 保留第一列原始数据
最终,sorted_array中的数据按第一列进行排序,并且保留了原始行中的数据。
下面是以上操作的完整代码示例:
import numpy as np
array = np.array([[2, 1, 3], [5, 4, 6], [8, 7, 9]])
sorted_indices = np.argsort(array[:, 0])
sorted_array = array[sorted_indices]
sorted_array[:, 0] = array[:, 0]
print(sorted_array)
推荐的腾讯云相关产品和产品介绍链接地址:
注意:本回答所提供的是腾讯云的相关产品,其他品牌商的产品请自行参考其官方文档。
领取专属 10元无门槛券
手把手带您无忧上云