Código-fonte para CB2325NumericaG1.estatistica.estatistica

import numpy as np
import numpy.typing as npt

[documentos] def mean(x: npt.ArrayLike, pesos: npt.ArrayLike = None) -> float: """ Calcula a média aritmética simples de um conjunto de dados, caso apenas um paramêtro for passado Se um segundo parâmetro for passado, esse será considerado um conjunto de pesos, e será calculada a média aritmética ponderada. Args: x (npt.ArrayLike): Vetor com o conjunto de dados para calcular a média pesos (npt.ArrayLike, opcional): Vetor contendo os valores da variável dependente. Returns: float: Média simples ou ponderada dos dados, de acordo com os parâmetros passados Raises: ValueError: Se 'x' e 'pesos' tiverem comprimentos diferentes. Se a soma dos valores de 'pesos' for igual à 0 """ if pesos == None: pesos = np.ones(len(x)) if len(pesos) != len(x): raise ValueError("Os arrays 'x' e 'pesos' devem ter o mesmo comprimento") sumx = 0.0 sumpesos = 0.0 for v, w in zip(x, pesos): sumx += v*w sumpesos += w media = sumx/sumpesos return float(media)
[documentos] def std(x: npt.ArrayLike, pesos: npt.ArrayLike = None) -> float: """ Calcula o desvio padrão de um conjunto de dados Args: x (npt.ArrayLike): Vetor com o conjunto de dados para calcular o desvio padrão Returns: float: Desvio padrão calculado """ media = mean(x) variancia = 0.0 for v in x: variancia += (v-media)**2 variancia /= len(x) return float(variancia**0.5)