Statistiques simples – Packages Java pour calculer la moyenne, l’écart type, etc.

Pourriez-vous s’il vous plaît suggérer des paquets de statistiques Java simples?

Je n’ai pas nécessairement besoin de quelque chose de avancé. J’ai été très surpris de constater qu’il ne semble pas y avoir de fonction pour calculer la moyenne dans le package java.lang.Math

Qu’est-ce que vous utilisez pour ça?


MODIFIER

En ce qui concerne:

Est-il difficile d’écrire une classe simple qui calcule les moyennes et les écarts-types?

Eh bien, pas difficile. J’ai seulement posé cette question après les avoir codées à la main. Mais cela n’a fait qu’append à ma frustration Java de ne pas avoir ces fonctions les plus simples à ma disposition lorsque j’en avais besoin. Je ne me souviens pas de la formule pour calculer stdev par coeur 🙂

Apache Commons Math , en particulier DescriptiveStatistics et SummaryStatistics .

Depuis Java SE 8, plusieurs classes ont été ajoutées à la plateforme:

  • java.util.DoubleSummaryStatistics
  • java.util.IntSummaryStatistics
  • java.util.LongSummaryStatistics

Juste en répondant à cette partie de la question:

J’ai été très surpris de constater qu’il ne semble pas y avoir de fonction pour calculer la moyenne dans le package java.lang.Math …

Je ne pense pas avoir été surpris de trouver ça. Il y a beaucoup d’algorithmes utiles que les bibliothèques de classes Java n’implémentent pas. Ils ne mettent pas tout en œuvre. Et en cela, ils ne sont pas différents des autres langages de programmation.

En fait, ce serait une mauvaise chose si Sun essayait de trop implémenter dans J2SE:

  1. Cela prendrait plus de temps pour le concepteur / développeur / documenteur technique … sans “retour sur investissement” clair.

  2. Cela augmenterait l’empreinte Java; Par exemple, la taille de “rt.jar”. (Ou s’ils essayaient d’atténuer cela, cela aurait pour conséquence une plus grande complexité de la plate-forme …)

  3. Pour les choses dans l’espace mathématique, vous devez souvent implémenter les algorithmes de différentes manières (avec différentes API) pour répondre aux différentes exigences.

  4. Pour les choses complexes, il peut être préférable pour Sun de ne pas “standardiser” les API, mais de laisser le soin à un autre groupe intéressé / qualifié de le faire. par exemple les gens d’Apache.

 import java.util.*; public class stdevClass { public static void main(Ssortingng[] args){ int [] list = {1,-2,4,-4,9,-6,16,-8,25,-10}; double stdev_Result = stdev(list); System.out.println(stdev(list)); } public static double stdev(int[] list){ double sum = 0.0; double mean = 0.0; double num=0.0; double numi = 0.0; double deno = 0.0; for (int i : list) { sum+=i; } mean = sum/list.length; for (int i : list) { numi = Math.pow((double) i - mean), 2); num+=numi; } return Math.sqrt(num/list.length); } } 

Je pense qu’il n’y a pas de méthode directe et de classes en Java. Nous devons le construire pour nous-mêmes. Pour votre exigence, ce code vous aidera. Calculer l’écart type en Java