Резюмируя основные выводы из моего изучения знаменитой научной библиотеки Python Numpy.
Чтобы запускать коды, показанные в этой статье, используйте онлайн-компилятор Python c. Это поможет вам понять и запомнить концепции по мере продвижения вперед, а также выработает привычку практиковаться в кодировании.
Многим компаниям, нанимающим на должности Python, особенно требуется знание библиотеки Numpy.
NumPy — это библиотека Python, используемая для работы с массивами. Он также имеет функции для работы в области линейной алгебры, преобразования Фурье и матриц. NumPy был создан в 2005 году Трэвисом Олифантом. Это проект с открытым исходным кодом, и вы можете использовать его свободно. NumPy означает числовой Python.
В Python у нас есть списки, которые служат для массивов, но они медленно обрабатываются. NumPy стремится предоставить объект массива, который до 50 раз быстрее, чем традиционные списки Python.
Объект массива в NumPy называется ndarray
, он предоставляет множество вспомогательных функций, упрощающих работу с ndarray
. Массивы очень часто используются в науке о данных, где очень важны скорость и ресурсы.
Результаты обучения:
Применение Numpy для расчета статистических концепций:
- Значит
- медиана
- процентили
- Межквартильный диапазон
- Выбросы
- Среднеквадратичное отклонение
СРЕДНЕЕ:
Прежде чем использовать Numpy для набора данных, нам нужно преобразовать его в массив. Массив в Python похож на список в Python. Он представлен квадратными скобками со значениями внутри него, разделенными запятой. Чтобы выполнять операции с массивами в списке, нам нужно сначала преобразовать его в массив.
Пример:
Survey_responses = [5, 10.2, 4, .3,6.6]
Затем мы можем преобразовать набор данных в массив NumPy, используя
survey_array = np.array(survey_responses)
Примечание: np — это псевдоним для Numpy.
Вычисление среднего:
survey_mean = np.mean(survey_array)
Вывод:
0-D массивы
Массивы 0-D или скаляры — это элементы в массиве. Каждое значение в массиве представляет собой массив 0-D.
Например: arr = np.array(42)
Одномерные массивы
Массив, содержащий 0-мерные массивы в качестве элементов, называется одномерным или одномерным массивом. Это самые распространенные и основные массивы.
Например: arr = np.array([1, 2, 3, 4, 5])
2-D массивы
Массив, содержащий одномерные массивы в качестве элементов, называется двумерным массивом. Они часто используются для представления матрицы или тензоров 2-го порядка.
Например: arr = np.array([[1, 2, 3], [4, 5, 6]])
Трехмерные массивы
Массив, который имеет двумерные массивы (матрицы) в качестве своих элементов, называется трехмерным массивом. Они часто используются для представления тензора 3-го порядка.
Например: arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
n-D массивы
Массив, содержащий (n-1)-D массивов в качестве элементов, называется n-D массивом.
Проверить количество измерений массива
NumPy Arrays предоставляет атрибут ndim
, который возвращает целое число, указывающее, сколько измерений имеет массив.
Создание многомерных массивов:
Массив может иметь любое количество измерений.
Когда массив создан, вы можете определить количество измерений, используя аргумент ndmin
.
Например: arr = np.array([1, 2, 3, 4], ndmin=5)
примечание: для поиска измерений используется «ndim», а для создания измерений используется «ndmin». Оба не следует путать с одинаковыми.
Пример задачи 4 части:
- Нам предоставили данные об испытании нового лекарства от аллергии, AllerGeeThatSucks!. Пяти участникам было предложено оценить степень сонливости, вызванную лекарством, один раз в день в течение трех дней по шкале от одного (наименее сонливость). ) до десяти (наибольшая сонливость). Используйте
np.mean
, чтобы найти средний уровень сонливости по всем испытаниям, и сохраните результат в переменнойtotal_mean
.
аллергия_пробы = np.array([[6, 1, 3, 8, 2], [2, 6, 3, 9, 8], [5, 2, 6, 9, 9]])
2. Используйте np.mean
, чтобы найти средний уровень сонливости в каждый день эксперимента и сохраните его в переменной trial_mean.
.
3. Используйте np.mean
, чтобы найти средний уровень сонливости для каждого отдельного пациента, чтобы увидеть, были ли некоторые из них более чувствительны к препарату, чем другие, и сохраните его в переменной patient_mean.
.
4. Выведите переменные для total_mean
, trial_mean
и patient_mean
на трех отдельных строках.
Вывод:
Вопрос
Что такое ось в Numpy?
Отвечать
Ось аналогична размеру. Для двумерного массива есть 2 оси: вертикальная и горизонтальная.
При применении определенных функций Numpy, таких как np.mean()
, мы можем указать, по какой оси мы хотим вычислять значения.
Для axis=0
это означает, что мы применяем функцию к каждому «столбцу» или ко всем значениям, которые встречаются по вертикали.
Для axis=1
это означает, что мы применяем функцию вдоль каждой «строки» или всех значений по горизонтали.
ВЫБРОСЫ
Как мы видим, среднее значение — это полезный способ быстро понять различные части наших данных. Однако на среднее значение сильно влияют конкретные значения в нашем наборе данных. Что происходит, когда одно из этих значений значительно отличается от остальных?
Значения, которые не укладываются в большую часть набора данных, называются выбросами. Важно выявлять выбросы, потому что, если они останутся незамеченными, они могут исказить наши данные и привести к ошибка в нашем анализе (например, определение среднего значения). Они также могут быть полезны для выявления ошибок в нашем сборе данных.
Когда мы сможем идентифицировать выбросы, мы сможем определить, были ли они вызваны ошибкой при сборе выборки или представляют собой значительное, но реальное отклонение от среднего значения.
Сортировка и выбросы
Один из способов быстрого выявления выбросов — сортировка данных. После сортировки данных мы можем быстро взглянуть на начало или конец массива, чтобы увидеть, не выходят ли некоторые значения далеко за пределы ожидаемого диапазона. Мы можем использовать функцию NumPy np.sort
для сортировки наших данных.
Давайте возьмем пример роста ученика 3-го класса и представим, что в наш эксперимент вошел восьмиклассник:
>>> heights = np.array([49.7, 46.9, 62, 47.2, 47, 48.3, 48.7])
Если мы используем
np.sort
, мы можем сразу определить более высокого ученика, поскольку его рост (62 дюйма) заметно выходит за пределы диапазона набора данных:
>>> np.sort(heights)
array([ 46.9, 47. , 47.2, 48.3, 48.7, 49.7, 62])
Обратная сортировка: для любого данного массива мы можем изменить порядок элементов с помощью np.sort(array_name[::-1])
МЕДИАНА
Другой ключевой показатель, который мы можем использовать при анализе данных, — это медиана. Медиана — это среднее значение набора данных, упорядоченного по величине (от наименьшего к наибольшему).
Давайте посмотрим на следующий массив:
np.array( [1, 1, 2, 3, 4, 5, 5])
В этом примере медиана будет равна 3, поскольку она находится посередине между минимальным и максимальным значениями.
Если бы длина нашего набора данных была четным числом, медиана была бы значением посередине между двумя центральными значениями. Таким образом, в следующем примере медиана будет 3,5:
np.array( [1, 1, 2, 3, 4, 5, 5, 6])
Но что, если бы у нас был очень большой набор данных? Было бы очень утомительно подсчитывать все значения. К счастью, в NumPy также есть функция для вычисления медианы, np.median
:
>>> my_array = np.array([50, 38, 291, 59, 14])
>>> np.median(my_array)
50.0
Среднее против медианы
В наборе данных значение медианы может обеспечить важное сравнение со средним значением. В отличие от среднего, выбросы не влияют на медиану. Это становится важным в наборах данных с перекосом — наборах данных, значения которых распределены неравномерно.
ПРОЦЕНТИЛИ
Как мы знаем, медиана — это середина набора данных: это число, для которого 50% выборок находятся ниже, а 50% выборок — выше. Но что, если мы хотим найти точку, в которой 40% отсчетов находятся ниже, а 60% отсчетов — выше?
Этот тип точки называется процентилем. N-й процентиль определяется как точка N% выборок, находящихся ниже него. Таким образом, точка, в которой 40% выборок находятся ниже, называется 40-м процентилем. Процентили являются полезными измерениями, потому что они могут сказать нам, где конкретное значение находится в большом наборе данных.
Давайте посмотрим на следующий массив:
d = [1, 2, 3, 4, 4, 4, 6, 6, 7, 8, 8]
В наборе данных 11 чисел. 40-й процентиль будет иметь 40% из 10 оставшихся чисел под ним (40% от 10 равно 4) и 60% чисел над ним (60% от 10 равно 6). Так что в этом примере 40-й процентиль равен 4.
В NumPy мы можем вычислять процентили с помощью функции np.percentile
, которая принимает два аргумента: массив и процентиль для вычисления.
Вот как мы будем использовать NumPy для вычисления 40-го процентиля массива d
:
>>> d = np.array([1, 2, 3, 4, 4, 4, 6, 6, 7, 8, 8])
>>> np.percentile(d, 40)
4.00
Некоторые процентили имеют определенные названия:
- 25-й процентиль называется первым квартилем.
- 50-й процентиль называется медианой.
- 75-й процентиль называется третьим квартилем.
Минимум, первый квартиль, медиана, третий квартиль и максимум набора данных называются сводкой из пяти чисел. Этот набор чисел отлично подходит для вычислений, когда мы получаем новый набор данных.
Разница между первым и третьим квартилем представляет собой значение, называемое межквартильный диапазон. Например, скажем, у нас есть следующий массив:
d = [1, 2, 3, 4, 4, 4, 6, 6, 7, 8, 8]
Мы можем вычислить 25-й и 75-й процентили, используя np.percentile
:
np.percentile(d, 25)
>>> 3.5
np.percentile(d, 75)
>>> 6.5
Затем, чтобы найти межквартильный размах, мы вычитаем значение 25-го процентиля из значения 75-го:
6.5 - 3.5 = 3
50 % набора данных будут лежать в пределах межквартильного диапазона. Межквартильный диапазон дает нам представление о том, насколько разбросаны наши данные. Чем меньше значение межквартильного диапазона, тем меньше дисперсия в нашем наборе данных. Чем больше значение, тем больше дисперсия.
СРЕДНЕКВАДРАТИЧНОЕ ОТКЛОНЕНИЕ
Когда стандартное отклонение мало, значения будут менее разбросаны и будут ближе к среднему значению. Это приведет к тому, что общая форма этого набора данных будет казаться менее хаотичной и более выровненной.
Когда стандартное отклонение велико, значения будут более разбросаны по сравнению со средним значением. Форма набора данных будет казаться более неравномерной и хаотичной по мере увеличения стандартного отклонения.
Мы можем найти стандартное отклонение набора данных, используя функцию Numpy np.std
:
>>> nums = np.array([65, 36, 52, 91, 63, 79])
>>> np.std(nums)
17.716909687891082