Как заказать массив 2-мерных массивов на основе y-координаты - PullRequest
0 голосов
/ 24 октября 2019

У меня есть код, который перебирает некоторый интервал в 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 голосов
/ 29 октября 2019

Вы можете использовать следующее:

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

Это позволит вам сортировать по i-му элементу каждого одномерного массива в вашем большем массиве.

...