У меня есть файл с индексами по первым столбцам, которые пишутся случайным образом. У меня есть для каждого из этих индексов еще 2 значения, соответствующие вторым столбцам и третьим столбцам.
Например, у меня есть файл 'file.dat'
, например:
2 0.9 1.0
1 0.5 2.6
10 11.2 3.1
87 32.1 8.2
...
...
100 1.2 9.8
103 0.7 0.6
Единственный В SO я нашел способ:
Photoz_tab = np.loadtxt('file.dat')
Photoz_tab = sorted(Photoz_tab, key=lambda a_entry: a_entry[0])
Таким образом, я могу отсортировать первый индекс, сохранив при этом связанные с ними 2 других значения.
Но, похоже, есть и другое решение ( что на самом деле не работает):
Photoz_tab = np.loadtxt('file.dat')
idx = np.argsort(Photoz_tab[:,0])
Photoz_tab = Photoz_tab[idx,:,:]
Но второе и третье значения не сохраняются для первого отсортированного индекса.
Итак, мой вопрос состоит в том, чтобы знать, как сохранить этот порядок:
просто:
Photoz_tab = Photoz_tab[idx,idx,idx]
достаточно? Сейчас я собираюсь протестировать, информирую вас.
ОБНОВЛЕНИЕ 1: синтаксис Photoz_tab = Photoz_tab[idx,:,:]
выдает ошибку.
Вместо этого нужно исправить:
Photoz_tab = Photoz_tab[idx][:][:]
и, похоже, дает желаемый результат.
С уважением