Como normalizar valores no array numpy entre 0 e 1
Para normalizar os valores de um array NumPy entre 0 e 1, você pode usar um dos seguintes métodos:
Método 1: use NumPy
import numpy as np x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
Método 2: use Sklearn
from sklearn import preprocessing as pre x = x. reshape (-1, 1) x_norm = pre. MinMaxScaler (). fit_transform (x)
Ambos os métodos assumem que x é o nome do array NumPy que você deseja normalizar.
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: normalizar valores usando NumPy
Suponha que temos o seguinte array NumPy:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Podemos usar o seguinte código para normalizar cada valor na matriz entre 0 e 1:
#normalize all values to be between 0 and 1
x_norm = (x-np. min (x))/(np. max (x)-np. min (x))
#view normalized array
print (x_norm)
[0. 0.05172414 0.10344828 0.15517241 0.17241379 0.43103448
0.5862069 0.74137931 0.77586207 0.86206897 0.89655172 0.98275862
1. ]
Cada valor na matriz NumPy foi normalizado para estar entre 0 e 1.
Veja como funcionou:
O valor mínimo no conjunto de dados é 13 e o valor máximo é 71.
Para normalizar o primeiro valor de 13 , aplicaríamos a fórmula compartilhada anteriormente:
- z i = (x i – min(x)) / (max(x) – min(x)) = (13 – 13) / (71 – 13) = 0
Para normalizar o segundo valor de 16 , usaríamos a mesma fórmula:
- z i = (x i – min(x)) / (max(x) – min(x)) = (16 – 13) / (71 – 13) = 0,0517
Para normalizar o terceiro valor de 19 , usaríamos a mesma fórmula:
- z i = (x i – min(x)) / (max(x) – min(x)) = (19 – 13) / (71 – 13) = 0,1034
Usamos esta mesma fórmula para normalizar cada valor na matriz NumPy original entre 0 e 1.
Exemplo 2: Normalizar valores usando sklearn
Novamente, suponha que temos o seguinte array NumPy:
import numpy as np
#create NumPy array
x = np. array ([13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71])
Podemos usar a função MinMaxScaler() do sklearn para normalizar cada valor no array entre 0 e 1:
from sklearn import preprocessing as pre
#reshape array so that it works with sklearn
x = x. reshape (-1, 1)
#normalize all values to be between 0 and 1
x_norm = pre. MinMaxScaler (). fit_transform (x)
#view normalized array
print (x_norm)
[[0. ]
[0.05172414]
[0.10344828]
[0.15517241]
[0.17241379]
[0.43103448]
[0.5862069]
[0.74137931]
[0.77586207]
[0.86206897]
[0.89655172]
[0.98275862]
[1. ]]
Cada valor na matriz NumPy foi normalizado para estar entre 0 e 1.
Observe que esses valores normalizados correspondem aos calculados pelo método anterior.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns no NumPy:
Como ordenar elementos no array NumPy
Como remover elementos duplicados do array NumPy
Como encontrar o valor mais frequente no array NumPy