Ici, j'ai une liste comme suit:

[0.40540540540540543, 0.40540540540540543, 0.08108108108108109, 0.40540540540540543, 0.40540540540540543, 0.43243243243243246, 0.43243243243243246, 0.40540540540540543, 0.40540540540540543]

À partir de la liste ci-dessus, nous pouvons observer que la plupart des valeurs sont comprises entre 0,4 et 0,5. Je veux écrire un morceau de code qui déterminera la plage pour la plupart des nombres de la liste (qui se trouvent dans la plage) et trouvera la valeur minimale qui se trouve dans la plage.

-3
Atharva 13 nov. 2020 à 09:46

1 réponse

Meilleure réponse

Vous devez définir ce que vous entendez par valeurs aberrantes en calculant la valeur z (voir https://www .statology.org/remove-outliers-python/ pour plus de détails)

import numpy as np
import scipy.stats as stats
A = np.array([0.40540540540540543, 0.40540540540540543, 0.08108108108108109, 0.40540540540540543,
              0.40540540540540543, 0.43243243243243246, 0.43243243243243246, 0.40540540540540543,
              0.40540540540540543])
z = np.abs(stats.zscore(A))
A_clean = np.array([A[i] for i in range(len(z)) if z[i] < 2])

Normalement, nous définissons les valeurs aberrantes comme z > 3 ou z < -3, mais pour votre exemple, z < 2 fonctionnerait.

-1
Teera 13 nov. 2020 à 14:31