Spaces:
Sleeping
Sleeping
| import numpy as np | |
| from scipy import stats | |
| from smolagents.tools import tool | |
| from typing import List, Dict, Any | |
| def analyze_dataset(data: List[float]) -> Dict[str, Any]: | |
| """ | |
| Analisa um conjunto de dados numéricos e retorna as principais medidas estatísticas. | |
| Esta função é útil para interpretar e comparar conjuntos de dados (EM13MAT407). | |
| Args: | |
| data: Uma lista de números (int ou float) para ser analisada. | |
| Returns: | |
| Um dicionário contendo as medidas de tendência central (média, mediana, moda), | |
| a amplitude e as medidas de dispersão (variância, desvio padrão). | |
| """ | |
| if not data: | |
| return {"erro": "A lista de dados não pode estar vazia."} | |
| try: | |
| # Medidas de Tendência Central | |
| mean_val = np.mean(data) | |
| median_val = np.median(data) | |
| # A moda pode ter múltiplos valores ou nenhum | |
| mode_result = stats.mode(data, keepdims=False) | |
| mode_val = mode_result.mode.tolist() if mode_result.count > 0 else 'Não há moda única' | |
| # Amplitude | |
| amplitude = np.ptp(data)# (max - min) | |
| # Medidas de Dispersão | |
| variance_val = np.var(data) | |
| std_dev_val = np.std(data) | |
| return { | |
| "medidas_de_tendencia_central": { | |
| "media": round(mean_val, 2), | |
| "mediana": round(median_val, 2), | |
| "moda": mode_val | |
| }, | |
| "amplitude": round(amplitude, 2), | |
| "medidas_de_dispersao": { | |
| "variancia": round(variance_val, 2), | |
| "desvio_padrao": round(std_dev_val, 2) | |
| }, | |
| "total_de_elementos": len(data) | |
| } | |
| except Exception as e: | |
| return {"erro": f"Erro ao analisar os dados: {str(e)}"} | |