Мне нужно отсортировать два массива одновременно, или, скорее, мне нужно отсортировать один из массивов и принести с ним соответствующий элемент соответствующего массива при сортировке. То есть, если массив [(5, 33), (4, 44), (3, 55)] и я сортирую по первой оси (помечена ниже dtype = 'alpha'), тогда я хочу: [(3.0, 55.0 ) (4,0, 44,0) (5,0, 33,0)]. Это действительно большие наборы данных, и мне нужно сначала отсортировать (для скорости nlog (n)), прежде чем я сделаю некоторые другие операции. Я не знаю, как правильно объединить два моих отдельных массива, чтобы алгоритм сортировки работал. Я думаю, что моя проблема довольно проста. Я пробовал три разных метода:
import numpy
x=numpy.asarray([5,4,3])
y=numpy.asarray([33,44,55])
dtype=[('alpha',float), ('beta',float)]
values=numpy.array([(x),(y)])
values=numpy.rollaxis(values,1)
#values = numpy.array(values, dtype=dtype)
#a=numpy.array(values,dtype=dtype)
#q=numpy.sort(a,order='alpha')
print "Try 1:\n", values
values=numpy.empty((len(x),2))
for n in range (len(x)):
values[n][0]=y[n]
values[n][1]=x[n]
print "Try 2:\n", values
#values = numpy.array(values, dtype=dtype)
#a=numpy.array(values,dtype=dtype)
#q=numpy.sort(a,order='alpha')
###
values = [(x[0], y[0]), (x[1],y[1]) , (x[2],y[2])]
print "Try 3:\n", values
values = numpy.array(values, dtype=dtype)
a=numpy.array(values,dtype=dtype)
q=numpy.sort(a,order='alpha')
print "Result:\n",q
Я прокомментировал первую и вторую попытки, потому что они создают ошибки, я знал, что третья будет работать, потому что это отражало то, что я видел, когда был RTFM. Учитывая массивы x и y (которые очень велики, приведены только примеры), как мне построить массив (называемые значениями), который может быть правильно вызван numpy.sort?
*** Zip отлично работает, спасибо. Дополнительный вопрос: как я могу позже снова разархивировать отсортированные данные в два массива?