要按照NumPy数组的某个字段进行排序,可以使用np.argsort()
函数来获取排序后的索引,然后使用这些索引对数组进行重排。
以下是一个示例代码,假设有一个包含姓名、年龄和分数的NumPy数组,我们希望按照分数进行排序:
import numpy as np
# 创建一个包含姓名、年龄和分数的NumPy数组
data = np.array([
('Alice', 25, 90),
('Bob', 30, 85),
('Charlie', 20, 95),
('Dave', 35, 80)
],
dtype=[('name', 'U10'), ('age', int), ('score', int)])
# 按照分数字段进行排序
sorted_data = data[np.argsort(data['score'])]
print(sorted_data)
输出结果:
[('Dave', 35, 80) ('Bob', 30, 85) ('Alice', 25, 90) ('Charlie', 20, 95)]
在上述代码中,我们首先创建了一个包含姓名、年龄和分数字段的NumPy数组data
。然后,使用np.argsort()
函数根据分数字段对数组进行排序,并将排序后的索引存储在sorted_data
中。最后,打印出排序后的数组。
注意,np.argsort()
函数返回的是排序后的索引,因此我们需要使用这些索引对原数组进行重排,才能得到按字段排序的结果。
上一篇:按字段内容进行分组的查询
下一篇:按字段使用多个选项过滤查询集合