una por ordenar multiplicacion matriz matrices ejemplos como columna arreglos python arrays sorting numpy recarray

ordenar - Ordenando una matriz python/recarray por columna



ordenar matriz por columna c++ (4)

Tengo una pregunta bastante simple sobre cómo ordenar una matriz completa / recarray por una columna determinada. Por ejemplo, dado el conjunto:

import numpy as np data = np.array([[5,2], [4,1], [3,6]])

Me gustaría ordenar los datos por la primera columna para regresar:

array([[3,6], [4,1], [5,2]])



Para ordenar en la segunda columna use itemgetter

>>> from operator import itemgetter >>> data = [[5,2], [4,1], [3,6]] >>> sorted(data) [[3, 6], [4, 1], [5, 2]] >>> sorted(data,key=itemgetter(1)) [[4, 1], [5, 2], [3, 6]] >>>


Use los data[np.argsort(data[:, 0])] donde el 0 es el índice de la columna sobre el cual ordenar:

In [27]: import numpy as np In [28]: data = np.array([[5,2], [4,1], [3,6]]) In [29]: col = 0 In [30]: data=data[np.argsort(data[:,col])] Out[30]: array([[3, 6], [4, 1], [5, 2]])


estás buscando operator.itemgetter

>>> from operator import itemgetter, attrgetter >>> sorted(student_tuples, key=itemgetter(2)) [(''dave'', ''B'', 10), (''jane'', ''B'', 12), (''john'', ''A'', 15)] >>> sorted(student_objects, key=attrgetter(''age'')) [(''dave'', ''B'', 10), (''jane'', ''B'', 12), (''john'', ''A'', 15)]

es decir

In [7]: a Out[7]: [[5, 2], [4, 1], [3, 6]] In [8]: sorted(a, key=operator.itemgetter(0)) Out[8]: [[3, 6], [4, 1], [5, 2]]