所以我使用以下代码输入了一个csv文件:
csvdata = np.loadtxt(sys.argv[2],
delimiter=',',
dtype={
'names': ('year', 'month', 'day', 'ItemName'),
'formats': ('i4', 'i4', 'i4', 'S10')
}
)
现在,我想根据年,月和日对这些数据进行排序。有人能告诉我怎么做吗????
Csv Data看起来像这样:
2012,3,6,ABCD
2012,3,6,XYZA
问题是,它目前正在对名称进行排序。我希望它出现在日期。
答案 0 :(得分:4)
它在手册中(http://docs.scipy.org/doc/numpy/reference/generated/numpy.sort.html)
使用order关键字指定排序时要使用的字段 结构化数组:
>>> dtype = [('name', 'S10'), ('height', float), ('age', int)]
>>> values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
... ('Galahad', 1.7, 38)]
>>> a = np.array(values, dtype=dtype) # create a structured array
>>> np.sort(a, order='height')
array([('Galahad', 1.7, 38), ('Arthur', 1.8, 41),
('Lancelot', 1.8999999999999999, 38)],
dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])
所以,你想要:
np.sort(csvdata, order=['year', 'month', 'day'])