Научите вас изучать Numpy вручную, эти API нельзя пропустить

машинное обучение

Эта статья возникла из личного публичного аккаунта:TechFlow, оригинальность это не просто, прошу внимания


Сегоднятупые темыВ пятой статье давайте продолжим изучение некоторых часто используемых математических и статистических функций в Numpy.

Основные статистические методы

В повседневной работе нам часто нужно понимать распределение признаков через ряд значений. Наиболее часто используютсясреднее значение, дисперсия, стандартное отклонение, процентилии Т. Д. Первые несколько легко понять.Давайте кратко представим этот процентиль, который относится к значению в позиции x% после расположения элементов от меньшего к большему. Обычно мы используем три значения: 25%, 50% и 75%. Благодаря этим значениям мы можем легко получить общее представление о распределении всей функции.

Первые три индикатора: среднее значение, дисперсия и стандартное отклонение очень легко понять, мы можем просто посмотреть код напрямую.

медиана и процентиль — это медиана и процентиль соответственно, это не функции массива в Numpy, а библиотечные функции numpy. Итак, нам нужно передать массив в качестве параметра. Функция процентиля также должна передавать дополнительное целое, указывающее процентиль, который мы хотим получить, например, если мы хотим узнать число в позиции 50%, введите 50.

В дополнение к ним мы часто будем использовать функции sum, min, max, argmin и argmax. sum, min, max хорошо понятны, argmin и argmax означаютПолучить индекс минимума и максимума.

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

Это просто основное использование API, а не только функции, поддерживаемые в numpy. Когда мы понаблюдаем за этими функциями, мы обнаружим, что их областью действия является набор данных, а то, что они возвращают, является результатом набора данных, полученных в результате определенной операции. Например, сумма — это цена набора данных. std вычисляет стандартное отклонение набора данных, такая функция называетсяАгрегатная функция.

Функция агрегации в numpy позволяет передавать параметр оси при ее использовании,ограничивать область его агрегации. Мы используем параметр оси для управления, ось = 0 означает агрегацию столбцов, ось = 1 означает агрегацию строк. Если мы его запомним, то всегда будет путаница, ведь переданная ось тоже является индексом, который указывает индекс первого индекса. Форма нашего двумерного массива [строка, столбец], где 0-й бит — это строка, а 1-й бит — столбец, можно считать, что ось — это индекс этого индексного вектора.

Мы можем это проверить:

Вы можете видеть, что длины векторов, возвращаемых осью=0 и осью=1, различны, потому чтоАгрегировать по столбцу только с 4 столбцами, так что вы получите результат 1 x 4. иИмеется 5 строк, объединенных в единицы строки., поэтому вектор 1 x 5.

В дополнение к этим функциям, представленным выше, есть два API, cumsum и cumprod. Среди них cumsum используется для накопления массива, а cumprod — для выполнения операции накопления. Просто он редко используется в реальной работе, поэтому я не буду вдаваться в подробности, а заинтересованные студенты могут обратиться к документации по API.

методы логических массивов

Как мы упоминали ранее во вводной статье о Python, в PythonTrue и False точно эквивалентны 1 и 0. Затем в приведенных выше методах расчета, если есть значение типа bool, оно будет преобразовано в вычисление 1 и 0.

Нам очень удобно использовать это гибко.Например, предположим, мы хотим подсчитать, сколько фрагментов данных больше 0 в пакете данных. Нам очень удобно использовать сумму:

В дополнение к вышеперечисленным основным API-интерфейсам операций, массивы bool также имеют два специальных API, которые также очень удобны. называетсяany, называетсяall. any означает, что пока один из массивов имеет значение True, результат будет True. Это можно рассматривать как значение Есть ли Истина в массиве, Точно так же все означает, что только если массив Истинно, результат Истинно. Соответствующий английский язык — все ли значения в массиве True.

Пока вы это понимаете, в принципе трудно забыть.

Сортировать

Собственные массивы Python можно сортировать, и массивы numpy не являются исключением. Нам нужно только вызвать метод сортировки для сортировки, но следует отметить, что сортировка в numpy используется по умолчанию.метод на месте. То есть после того, как мы вызовем sort, значение исходного массива автоматически изменится.

Если он записан как arr = arr.sort(), он получит None, так что будьте осторожны.

Точно так же мы также можем контролировать его диапазон сортировки, передав параметр оси, что можно сделатьСортировать каждый столбец или сортировать каждую строку, давайте посмотрим на примере:

Это для сортировки столбцов.Если передается 0, это для сортировки строк.Это не должно быть трудно понять.

коллекция API

Numpy также предоставляет несколько API-интерфейсов, ориентированных на наборы данных.По сравнению с API-интерфейсами для различных вычислений, эти методы используются реже. Обычно используется толькоуникальный и in1d.

Уникальный, как следует из названия, — это API для дедупликации, которое может возвращать результат дедупликации и сортировки одномерного массива. Давайте посмотрим пример:

Это эквивалентно:

set(sorted(arr))

in1d используется для определения того, находятся ли элементы коллекции в другой коллекции, функция вернет массив логического типа. Мы также можем рассмотреть пример:

Помимо этих двух API, есть еще union1d, вычисляющий объединение и сортировку, setdiff1d, вычисляющий разность, intersect1d, вычисляющий пересечение двух наборов и сортировок, и так далее. Частота использования этих API действительно невелика, поэтому я не буду вдаваться в подробности. Проверьте это, когда вам это нужно.

Суммировать

Сегодня мы рассказали о многих часто используемых вычислительных API в numpy, которые используются в нашей повседневной работе.Часто используется в машинном обучении и анализе данных. Например, при анализе распределения признаков, если объем данных велик, он не подходит для картографирования или визуального наблюдения. В настоящее время мы можем начать с медианы, среднего значения, дисперсии и нескольких ключевых точек процентилей.Например, когда мы используем softmax для мультиклассификации, мы также будем использовать argmax для получения результатов классификации.

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

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

В этой статье используетсяmdniceнабор текста