numpy.sort()
Método de llamada:
numpy.sort(a, axis=-1, kind=None, order=None)
Significado de cada parámetro:
a
Objeto de matriz a ordenar
axis
: Elija el eje de coordenadas según el cual ordenar. Si se establece en un None
valor, la matriz ordenada se aplanará primero y luego se ordenará. Si no establece el valor, el valor predeterminado -1
es ordenar a lo largo del último eje de coordenadas.
kind
: Se pueden seleccionar cuatro algoritmos de clasificación, como { }, el algoritmo predeterminado es order`: cadena o lista de cadenas. Si es una cadena, significa ordenar la categoría seleccionada. Si es una lista de cadenas, significa ordenar la primera categoría de caracteres primero y luego ordenar la segunda categoría de caracteres. Hay un valor de retorno, que devuelve una matriz copiada en orden. el código se muestra a continuación:
‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
‘quicksort’。
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([[1, 3], [2, 4]])
array_ = np.sort(array, axis=None)
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
[1 2 3 4]
"""
Podemos ver que cuando lo configuramos axis=None
, primero inicializaremos la matriz ordenada, luego realizaremos la operación de ordenación y, finalmente, obtendremos una matriz ordenada unidimensional.
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([[3, 1], [4, 2]])
array_ = np.sort(array)
array_1 = np.sort(array, axis=-1)
print("array_的值为:")
print(array_)
print("array_1的值为:")
print(array_1)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
[[1 3]
[2 4]]
array_1的值为:
[[1 3]
[2 4]]
"""
Podemos ver que cuando no configuramos los axis
parámetros, los resultados obtenidos axis=-1
son consistentes con los resultados establecidos .
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
dtype = [('name', 'S10'), ('height', float), ('age', int)]
values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
('Galahad', 1.7, 38)]
# 创建一个结构数组
array = np.array(values, dtype=dtype)
array_ = np.sort(array, order='height')
print("创建好的结构数组array的值为:")
print(array)
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
创建好的结构数组array的值为:
[(b'Arthur', 1.8, 41) (b'Lancelot', 1.9, 38) (b'Galahad', 1.7, 38)]
array_的值为:
[(b'Galahad', 1.7, 38) (b'Arthur', 1.8, 41) (b'Lancelot', 1.9, 38)]
"""
Podemos ver que cuando especificamos order
una cadena, significa ordenar los objetos representados por esta cadena. Es decir, height
están ordenados por altura .
A continuación, se muestra una forma de organizar los elementos de una matriz de grandes a pequeños.
# -*- coding:utf-8 -*-
"""
author: 15025
time: 2020/12/30 20:27
software: PyCharm
"""
import numpy as np
class Debug:
@staticmethod
def mainProgram():
array = np.array([[1, 3], [2, 4]])
array_ = abs(np.sort(-array, axis=None))
print("array_的值为:")
print(array_)
if __name__ == "__main__":
main = Debug()
main.mainProgram()
"""
array_的值为:
[4 3 2 1]
"""
Puede verse en los resultados anteriores que los elementos de la matriz se han organizado con éxito de grandes a pequeños.
numpy.ndarray.sort()
La función y los numpy.sort()
parámetros son exactamente los mismos, pero hay una diferencia en el método de llamada entre los dos, el numpy.ndarray.sort()
método de llamada de la función es el siguiente:
ndarray.sort(axis=-1, kind=None, order=None)
P.ej:
array = np.array([[1,4], [3,1]])
array.sort(axis=1)
La palabra clave no es fácil, si la encuentra útil, levante la mano para dar un me gusta y déjeme recomendarla para que la vea más gente ~