对 numpy 数组进行排序

Sorting a numpy array

我有一个 numpy 数组,我想对行进行排序。

    >>f1
    array([['b', '3'],
           ['v', '7'],
           ['a', '1'],
           ['a', '0'],
           ['a', '5'],
           ['f', '7'],
           ['f', '5'],
           ['a', '2'], dtype=object)

我正在使用 sort() 并且我变得像这样

    >> f1.sort()
    >> print f1
    [['3' 'b']
     ['7' 'v']
     ['1' 'a']
     ['0' 'a']
     ['5' 'a']
     ['7' 'f']
     ['5' 'f']
     ['2' 'a']]

但我需要的是,

    [['a' '0']
     ['a' '1']
     ['a' '2']
     ['a' '5']
     ['b' '3']
     ['f' '5']
     ['f' '7']
     ['v' '7']]

谁能帮帮我

Numpy 排序接受一个轴进行排序:

from numpy import array

f= array([['b', '3'],
           ['v', '7'],
           ['a', '1'],
           ['a', '0'],
           ['a', '5'],
           ['f', '7'],
           ['f', '5'],
           ['a', '2']])

f.sort(0)
print f

我得到:

[['a' '0']
 ['a' '1']
 ['a' '2']
 ['a' '3']
 ['b' '5']
 ['f' '5']
 ['f' '7']
 ['v' '7']]

编辑:

我刚刚意识到这可能不是您想要的。 numpy sort 在所有可能的遍历中沿轴排序(例如,在这种情况下,分别对每一列进行排序)。要按第一个索引进行 'row' 排序:

print array(sorted(f,key=lambda x: list(x)))

NM, 显然第一次就猜对了:)