对 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, 显然第一次就猜对了:)
我有一个 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, 显然第一次就猜对了:)