我尝试使用 Ned Batchelder 代码按人类顺序对NumPy
矩阵进行排序,如下面的帖子中提出的那样:
代码在一维数组上运行,命令为:
print (sorted(a, key=natural_keys))
现在,我的问题是我的数据是一个 10 列矩阵,我想根据一列对其进行排序(比如说MyColumn
)。我找不到修改代码以打印根据这一列排序的整个矩阵的方法。我能想到的是:
print (sorted(a['MyColumn'], key=natural_keys))
但是,当然,只MyColumn
显示在输出中,虽然它是正确排序的......
有没有办法打印整个矩阵?
这是我用来加载数组的命令(我将原始输入文件简化为 3 列数组):
data = np.loadtxt(inputfile, dtype={'names': ('ID', 'MyColumn', 'length'),
'formats': ('int32', 'S40', 'int32')},skiprows=1, delimiter='\t')
ID MyColumn length
164967 BFT_job13_q1_type2 426
197388 BFT_job8_q0_type2 244
164967 BFT_job13_q0_type1 944
72406 BFT_job1_q0_type3 696
理想情况下,输出如下所示:
ID MyColumn length
72406 BFT_job1_q0_type3 696
197388 BFT_job8_q0_type2 244
164967 BFT_job13_q0_type1 944
164967 BFT_job13_q1_type2 426