python - 对 numpy 矩阵中的字母数字字符串进行排序

标签 python sorting matrix numpy alphanumeric

我有一个包含 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/

相关文章:

java - 相当于python中的objectmapper

python - 在类方法中使用 __builtin__ 函数的属性错误

java - 对位置列表进行排序

linux - 如何在 Linux 中使用命令 "find . -type f -ls"获取按时间排序的列表(ASC/DESC)?

c# - 使用搜索字符串对列表进行排序

Python : Ensure string is exactly in A. B.C 格式 ..(两个点分隔 3 个字符串)

python - 三次样条插值得到系数

python - 如何将稀疏矩阵数组转换为json python

java - 对矩阵中的元素求和

java - 递归网格计数器