转置数据集,然后进行排序。然后,创建新的数据集

时间:2018-02-27 22:54:58

标签: python list numpy

我们的数据集就在这里。

a=np.array([2,6,9,5])
b =np.array([0.5,3,1,4])

我正在寻找的是(按a排序的数据点)

a=np.array([2,5,6,9])
b =np.array([0.5,4,3,1])

代码我一直在尝试并给我一个错误

如果你可以教我错误,那将是非常值得注意的。我为此搜索答案,但我无法找到答案。非常感谢你。

import numpy as np
a=np.array([2,6,9,5])
b =np.array([0.5,3,1,4])

#transpose data points
datatemp = np.array([a, b]).T

data=sorted(datatemp, key=itemgetter(0))

a=data[:,0]
b=data[:,1]
print(a)
print(b)

1 个答案:

答案 0 :(得分:2)

你实际上并不需要做任何这种疯狂的转置。函数np.argsort()是为这类东西设计的。

MSBuild

如果你看一下a = np.array([2,6,9,5]) b = np.array([0.5,3,1,4]) arg_order = np.argsort(a) a = a[arg_order] b = b[arg_order] print(a) print(b) #: array([2, 5, 6, 9]) #: array([ 0.5, 4. , 3. , 1. ]) 的值,它就是一个以正确的顺序检索索引的数组。

arg_order

Numpy数组可以将数组作为索引参数来描述检索哪些元素的顺序。(给我一个包含print(arg_order) #: array([0, 3, 1, 2]) 的新数组,然后是0th,然后是3rd然后是那个顺序的1st个元素。)