Normalização de Dados
Desafios de Código Python Intermediários I - Data Analytics - 1/2
Descrição
Você foi contratado para desenvolver um sistema que normaliza dados de um conjunto de registros financeiros para facilitar a análise. A normalização Min-Max (Escalonamento) é especialmente útil para trazer todos os valores para uma mesma escala, facilitando a comparação entre diferentes registros. Seu objetivo é escrever um programa que receba uma lista de valores financeiros e retorne esses valores normalizados no intervalo [0, 1] usando a técnica de normalização Min-Max.
Entrada
A entrada do seu programa deve ser uma lista de números reais que representam os valores financeiros. Por exemplo: [1500.0, 2000.0, 2500.0, 3000.0, 3500.0]
Saída
A saída deve ser uma lista de números reais normalizados no intervalo [0, 1]. Cada valor deve ser transformado de acordo com a fórmula de normalização Min-Max: x_norm = (x - x_min) / (x_max - x_min)
Exemplos
A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.
Entrada | Saída |
---|---|
1500.0, 2000.0, 2500.0, 3000.0, 3500.0 | [0.0, 0.25, 0.5, 0.75, 1.0] |
1000.0, 1500.0, 2000.0 | [0.0, 0.5, 1.0] |
1200.0, 800.0, 1000.0, 900.0 | [1.0, 0.0, 0.5, 0.25] |
Resolução
# Obtém os valores financeiros como uma lista de entrada do usuário,
# convertendo cada valor para float após remover espaços em branco e dividindo a entrada pelos caracteres de vírgula.
entrada = [float(valor.strip()) for valor in input().split(',')]
# Define a função de normalização Min-Max.
def min_max_normalization(data):
# Encontra o menor e o maior valor na lista de dados.
min_val = min(data)
max_val = max(data)
# Verifica se todos os valores são iguais.
if max_val == min_val:
# Se todos os valores são iguais, retorna uma lista de zeros.
return [0.0] * len(data)
# TODO: Aplique a fórmula de normalização Min-Max para cada valor na lista de dados.
return [(x - min_val) / (max_val - min_val) for x in data]
# Imprime os valores normalizados.
print(min_max_normalization(entrada))
Para encontrar outras soluções, verifique aqui.
Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.