如何基于y坐标对二维数组进行排序

时间:2019-10-24 16:15:45

标签: python numpy-ndarray

我有一些代码在x中的某个时间间隔内进行迭代,并计算出计算值和预期值y之差。

def find_alpha_max():
    alpha=0
    alphamax=1
    alphamin=0
    n=10
    alphastep=(alphamax-alphamin)/n
    data= np.zeros([n,2])
    for i in range(1,len(data)):
        alpha=i*alphastep
        data[i,0] = alpha
        data[i,1] = abs(wavelen(alpha)-121)
    print(data)

def wavelen(alpha):
    val1,val2= energy_levels(alpha)
    transition= abs(val1-val2)
    wavelength=(h*c/abs(transition*(1e-19)))/(1e-9)
    return wavelength

这给出了输出:

[[ 0.          0.        ]
 [ 0.1        61.37844557]
 [ 0.2        47.07247138]
 [ 0.3        33.72835938]
 [ 0.4        21.50950112]
 [ 0.5        10.44535124]
 [ 0.6         0.49201146]
 [ 0.7         8.43091667]
 [ 0.8        16.41859421]
 [ 0.9        23.56862328]]

我想要做的是根据数组的y值(从最小到最大)对数组的顺序进行排序,以便获得可以用于数值最小化的x值。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

Sorted(your_array, lambda your_array:your_array[i])

这将允许您按较大数组中每个一维数组的ith元素进行排序。