我尝试使用Ned Batchelder代码按人的顺序对NumPy
矩阵进行排序,如下文所述:
Sort numpy string array with negative numbers?
代码在一维数组上运行,命令是:
print (sorted(a, key=natural_keys))
现在,我的问题是我的数据是一个10列的矩阵,我想根据一列对它进行排序(比如MyColumn
)。我找不到一种方法来修改代码以打印按此列排序的整个矩阵。我能想到的就是:
但是,当然,只有MyColumn
出现在输出中,尽管它是正确排序的。。。在
有办法打印整个矩阵吗?
下面是我用来加载数组的命令(我将原来的imputfile简化为一个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
如果您有一个
np.matrix
,名为m
:如果您有一个
^{pr2}$np.ndarray
,称为a
:如果您有一个具有命名列的结构化数组:
对于您的具体情况,您需要the following ^{} function :
相关问题 更多 >
编程相关推荐