Classificar matriz por coluna em NumPy
-
NumPy Classifica Matriz por Coluna com a função
numpy.sort()
-
NumPy Classifica Array por Coluna com a Função
numpy.argsort()
Este tutorial irá apresentar métodos para classificar um array por coluna em NumPy.
NumPy Classifica Matriz por Coluna com a função numpy.sort()
Suponha que temos um array NumPy 2D e queremos classificar as linhas de acordo com a ordem dos elementos dentro de uma coluna específica. Podemos fazer isso com a função numpy.sort()
. A função numpy.sort()
classifica o array NumPy. Podemos especificar o índice da coluna e o eixo nos parâmetros order
e axis
da função numpy.sort()
. Precisamos converter nosso array em um array estruturado com campos para usar a função numpy.sort()
. Podemos usar a função numpy.view()
para fazer isso. Veja o seguinte exemplo de código.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array.view("i8,i8,i8").sort(order=["f1"], axis=0)
print("Array after sorting\n", array)
Resultado:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Primeiro criamos o array NumPy 2D array
com a função np.array()
. Em seguida, convertemos o array
em um array estruturado com a função array.view()
. Depois disso, classificamos o array pela segunda coluna com a função sort(order=['f1'], axis=0)
. Aqui, f1
se refere à segunda coluna.
NumPy Classifica Array por Coluna com a Função numpy.argsort()
Outra maneira mais simples de fazer exatamente a mesma coisa que a abordagem anterior é usar a função numpy.argsort()
. A função numpy.argsort()
também é usada para classificar os elementos de um array. É muito semelhante à abordagem anterior, mas não precisamos usar a função numpy.view()
para que essa abordagem funcione. A função numpy.argsort()
retorna os índices que seriam usados para classificar um array. Veja o seguinte exemplo de código.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array[array[:, 1].argsort()]
print("Array after sorting\n", array)
Resultado:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Primeiro criamos um array NumPy 2D array
com a função np.array()
. Em seguida, usamos uma fatia do array para especificar apenas a segunda coluna da array
e a classificamos com a função np.argsort()
. Usamos os índices retornados pela função np.argsort()
para classificar o array
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn