Как использовать JavaScript для анализа данных — руководство для начинающих

Анализ данных включает в себя сбор данных, которые у вас есть, и извлечение из них полезной информации. В процессе вам необходимо очищать данные, представлять их в полезном виде и делать выводы, которые могут помочь компаниям принять важные решения.

Анализ данных обычно выполняется с помощью таких языков, как Python и R. Мало кто знает, что вы также можете выполнять анализ данных с помощью JavaScript, и это тоже довольно просто.

Эта статья посвящена самым основным функциям анализа данных, которые вы можете выполнять в JavaScript. Давайте углубимся.

Как найти среднее значение с помощью JavaScript

Когда вы хотите найти среднее значение группы чисел, вы складываете их все вместе и делите на количество имеющихся у вас элементов.

Например, если у вас есть группа чисел 2, 5, 7, 9 и 12, вы складываете их все вместе и делите результат на 5 (в вашей группе пять чисел). Таким образом, среднее значение равно 2+5+7+9+12 = 35, а 35/5 = 7.

Другими словами, среднее значение — это результат, полученный путем деления суммы всех значений в наборе на длину или количество набора.

Возьмем в качестве примера этот набор случайных чисел от 1 до 1000:

const data = [
    943, 504, 733, 122, 868, 994, 553, 376, 450, 212,
    295, 859, 29, 820, 148, 589, 621, 870, 941, 909,
    725, 160, 198, 568, 409, 625, 207, 338, 162, 439,
    894, 937, 929, 648, 91, 235, 550, 851, 626, 926,
    190, 770, 33, 274, 79, 355, 768, 504, 415, 232,
    33, 327, 100, 1000, 775, 803, 587, 676, 17, 952,
    931, 838, 447, 358, 282, 606, 877, 185, 514, 263,
    887, 725, 270, 716, 762, 633, 900, 948, 786, 28,
    950, 858, 587, 804, 127, 803, 111, 609, 606, 461,
    947, 868, 43, 432, 113, 607, 852, 698, 984, 575
];

Чтобы вычислить среднее значение этого набора в JavaScript, вы можете использовать метод array.reduce (чтобы получить сумму массива) вместе с методом array.length (чтобы получить количество значений в наборе), чтобы найти среднее значение следующим образом:

const average = data.reduce((a, b) => a + b) / data.length; // Returns 552.35

Вы также можете найти среднее значение, используя стороннюю библиотеку, например math.js, например:

import { mean } from 'mathjs';

const average = mean(...data); // Returns 552.35

Вы также можете найти среднее значение, используя цикл for или цикл forEach.

let sum = 0;

for (let datum of data) sum += datum;

const average = sum / data.length; // Returns 552.35
let sum = 0;

data.forEach((datum) => sum += datum);

const average = sum / data.length; // Returns 552.35

Как найти максимум и минимум с помощью JavaScript

Когда вы работаете с функциями, максимум и минимум — это наибольшее и наименьшее значения этой функции. Вы можете рассчитать их для определенного диапазона или для всего набора значений.

Используя тот же массив сверху, мы можем получить максимальное значение, используя метод max встроенного модуля Math.

const max = Math.max(...data); // Returns 1000

Вы также можете получить минимальное значение, используя метод min.

const min = Math.min(...data); // Returns 17

В качестве альтернативы вы также можете использовать стороннюю библиотеку частично, например math.js, чтобы найти максимальное и минимальное значения, например:

import { min, max } from 'mathjs';

const maxValue = max(...data); // Returns 1000
const minValue = min(...data); // Returns 17

Вы также можете решить найти максимальное и минимальное значения самостоятельно. Вы можете сделать это, используя метод array.sort и выбрав первый и последний элементы в списке в качестве минимального и максимального значений соответственно. Или вы также можете сделать это, используя цикл и отслеживая максимальные и минимальные значения.

const sortedData = data.sort((a, b) => a - b);

const min = sortedData[0]; // Returns 17
const max = sortedData[sortedData.length - 1]; // Returns 1000
let min, max;

for (let datum of data) {
    if (!min || !max) {
        min = datum;
        max = datum;
    } else if (datum < min) min = datum;
    else if (datum > max) max = datum;
}

Как найти сумму с помощью JavaScript

Сумма, или итог, является результатом сложения последовательности чисел. В разделе, объясняющем среднее выше, мы увидели способ получить сумму последовательности, используя array.reduce.

const sum = data.reduce((a, b) => a + b); // Returns 55235

Еще один очень простой способ — использовать метод sum из math.js.

import { sum } from 'mathjs';

const sumValue = sum(...data); // Returns 55235

Вы также можете найти сумму, используя цикл, если хотите.

Как найти режим с помощью JavaScript

Режим набора данных представляет собой значение, которое встречается в наборе наибольшее количество раз. Если вы анализируете этот набор данных, это значение, которое вы, скорее всего, найдете.

Вы можете найти наиболее часто встречающийся элемент массива, перебирая массив, используя объект для сопоставления каждого значения с его счетчиком, и перебирая этот объект в конце, чтобы найти наибольшее значение.

Чтобы было проще это проиллюстрировать, измените массив data, который мы использовали до сих пор, следующим образом:

data[99] = 33;

Теперь вы можете найти режим следующим образом:

let frequency = {};

for (let datum of data) {
    if (frequency[datum]) frequency[datum] += 1;
    else frequency[datum] = 1;
}

let highestFrequency = 0;
let modeValue = 0; 

for (let datum in frequency) {
    if (frequency[datum] > highestFrequency) {
        highestFrequency = frequency[datum];
        modeValue = datum;
    }
}

Вы можете сделать это функцией, если вам когда-нибудь понадобится сделать это более одного раза.

Вы можете легко найти режим, используя метод mode библиотеки math.js:

const modeValue = mode(...data); // Returns 33

Как найти медиану с помощью JavaScript

Если вы хотите найти медиану набора данных, вам просто нужно найти значение точно в середине набора. Это означает, что данные должны быть упорядочены или отсортированы по возрастанию или убыванию — в противном случае среднее значение не имеет значения.

Вы можете найти медиану, сначала отсортировав массив, а затем выбрав элемент в средней позиции, если массив имеет нечетное количество элементов. Если в массиве четное количество элементов, вы выбираете два элемента посередине и находите их среднее значение.

const sortedArray = data.sort((a, b) => a - b);

const middlePosition = Math.floor(data.length / 2);

const median = data.length % 2 == 0 ? (sortedArray[middlePosition] + sortedArray[middlePosition - 1]) / 2 : sortedArray[middlePosition]; // Returns 597.5

Кроме того, вы можете найти медиану, используя метод median в math.js.

import { median } from 'mathjs';

const medianValue = median(...data); // Returns 597.6

Краткое содержание

Надеюсь, теперь вы понимаете, как выполнять эти основные функции анализа данных с помощью JavaScript. Библиотека math.js — одна из многих библиотек JavaScript, которые содержат множество полезных функций, упрощающих анализ данных с помощью JavaScript.

Если у вас есть какие-либо вопросы или соответствующие советы, пожалуйста, свяжитесь со мной, чтобы поделиться ими.

Первоначально опубликовано на https://www.freecodecamp.org 17 января 2023 г.

Чтобы прочитать больше моих статей или следить за моей работой, вы можете связаться со мной в LinkedIn, Twitter и Github. Это быстро, это просто и это бесплатно!