【发布时间】:2017-09-23 07:19:44
【问题描述】:
我有一个二维数组,我试图按第一列排序。但是,目前数组中的每个元素都是一个字符串,我希望将第一列视为整数,以便我可以按数字排序(1、2、6、11 ...而不是1、11、224, 23,...)。我正在使用 numpy 包使用x = numpy.loadtxt('file.txt', dtype = 'str', delimiter = '\t') 生成这些数组,这给了我:
array([['140', 'GGC'],
['256', 'AGGG'],
['841', 'CA'],
['46', 'TTATAGG'],
['64', 'AGAGAAAGGATTATG'],
['156', 'AGC'],
['187', 'GGA'],
['701', 'TTCG'],
['700', 'TC']],
dtype='|S15')
1) 我知道我可以使用以下方法将第一列转换为整数:
x[:,0].astype(int)
输出一维数组。但我不确定如何直接对我的二维数组进行更改?
2) 一旦我可以将我的第一列转换(或处理)为整数,我知道我可以使用以下方法进行排序:
sorted(x, key=lambda x: x[0])
但这对我的数据类型来说是最好的方法吗?
【问题讨论】:
标签: python python-2.7 sorting numpy multidimensional-array