我有一个包含两列浮动的文件,想要对它们进行排序。 我的代码到目前为止
import numpy as np
csv = np.genfromtxt ('test.dat')
#print csv
new = sorted(csv, key=lambda x: x[0])
print new
print csv yield
[ 2.54931641e+00 9.27734375e+00]
[ 2.52001953e+00 1.01318359e+01]
[ 2.56884766e+00 9.76562500e+00]
[ 2.57617188e+00 1.07421875e+01]
.....
但打印新产量
[array([ -2.59960938, -12.57324219]), array([ -2.59960938, -12.6953125 ]), array([ -2.59960938, -12.81738281]), array([
-2.59960938, -12.81738281]), array([ -2.59960938, -14.03808594]), array([ -2.59716797, -13.91601562]), array([ -2.594726
56, -15.38085938]), array([ -2.59472656, -13.18359375]), array([ -2.59228516, -12.57324219]), array([ -2.58984375, -12.9
3945312]), array([ -2.58740234, -16.11328125]), array([ -2.58740234, -12.57324219]), array([ -2.58496094, -15.25878906])
这个新输出对我来说是不可处理的。是否有一种方法可以使列表在排序之前看起来像(但正在排序,ofc)
修改 我测试了两个给定的解决方案
new1 = sorted(csv.tolist(), key=lambda x: x[0])
new2 = np.sort(csv, axis=0)
并且结果相反。为了进一步测试代码,我编写了一个测试文件
1 33
2 44
4 55
3 66
3 88
5 99
-4 111
17 22
4 77
这给了我
print new1[0]
>>>[-4.0, 111.0]
print new2[0]
>>>[ -4. 22.]
new2工作不正常,但为什么?
答案 0 :(得分:1)
如果您想获取列表列表而不是array
个对象列表,可以尝试传递排序csv
作为列表,如下所示:
new = sorted(csv.tolist(), key=lambda x: x[0])
答案 1 :(得分:1)
sorted
是一个返回列表的内置Python函数。您正在寻找np.sort
。
new = np.sort(csv, axis=0)