我们的数据集就在这里。
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)
答案 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
个元素。)