我有一个包含 10 列不同类型的矩阵。我根据字母数字列对它们进行排序:
data = np.sort(data, axis=0,order='AlphaNumColumn')
它没有正确完成工作,即
BFT_job10_q0
BFT_job13_q0
BFT_job13_q1
BFT_job1_q0
而不是:
BFT_job1_q0
BFT_job10_q0
BFT_job13_q0
BFT_job13_q1
numpy 可以做些什么吗?谢谢!
最佳答案
排序顺序似乎是正确的。我建议您检查一下您的编号:
1 becomes 01
如果您必须保留编号,您也可以这样做:
key = lambda x: '.'.join(x.split('_')[1:3]).replace('job','').replace('q','')
a[np.argsort([float(key(i)) for i in a[:,0]])]
其中 key()
将执行以下操作:
key('BFT_job10_q0') --> 10.
key('BFT_job1_q0') --> 1.
key('BFT_job13_q1') --> 13.1
key('BFT_job13_q0') --> 13.
关于python - 对 numpy 矩阵中的字母数字字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376700/