Как рассчитать агрегаты по массиву с маской в ​​Java? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть массив примитивов, который может содержать значения Nan. Как рассчитать его совокупность? Мол, org.apache.commons.math3.stat.descriptive.moment.Mean дает Nan в качестве вывода. Конечно, я могу написать это вручную, но, может быть, элегантное и эффективное решение уже существует?

1 Ответ

1 голос
/ 06 апреля 2020

Если вы используете потоковый API, вы можете использовать функцию фильтра для удаления NaN и других «нерегулярных» значений при вычислении статистики.

double[] array = {1, Double.NaN, 3};
DoubleSummaryStatistics statistics = Arrays.stream(array).filter(Double::isFinite).summaryStatistics();
double average = statistics.getAverage(); // 2.0
double sum = statistics.getSum(); // 4.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...