Обсуждение пятнадцати самых важных функций Numpy, которые разработчики должны изучить
Большая часть машинного обучения работает с математическими операциями. Поскольку математика является неотъемлемой частью большинства проектов в области науки о данных, для начинающих специалистов по анализу данных становится важным более глубоко остановиться на следующем предмете. Отличная утилита, которую предлагает один из лучших языков программирования для науки о данных, Python, - это библиотека numpy.
Числовой Python (NumPy) - квинтэссенция большинства проектов машинного обучения и науки о данных. Эти многочисленные массивы находят свое применение в приложениях компьютерного зрения для обработки изображений и их вычисления в виде массивов. Они также широко используются для задач обработки естественного языка во время векторизации массивов, чтобы сделать их совместимыми для обучения моделей ML или DL.
С помощью массивов NumPy вы можете относительно легко выполнить большинство математических вычислений. Это лучшая библиотека для большинства задач, связанных с линейной алгеброй и вычислением других подобных операций. Однако есть еще одна библиотека, которую вы должны проверить, чтобы упростить интеграцию и дифференциацию с библиотекой Python. Узнайте, как использовать sympy по следующей ссылке, чтобы упростить интегральное и дифференциальное исчисление.
Эта статья представляет собой руководство для начинающих по пятнадцати функциям numpy, которые необходимо знать, которые будут чрезвычайно полезны для множества операций. Мы постараемся охватить самые важные из них, но есть еще много всего, что нужно исследовать. Итак, давайте начнем со всех основных функций, которым нужно научиться как энтузиаст науки о данных.
1. Создание массивов:
x = [1, 2, 3, 4, 5] y = np.array(x) y
Выход: массив ([1, 2, 3, 4, 5])
Первый важный шаг, который должен знать каждый специалист по обработке данных, который планирует освоить numpy, - как его создать. Когда вы можете создать массив, вы можете манипулировать им для выполнения множества операций. Чтобы создать массив, вы можете выполнить следующие вычисления несколькими способами. Один из способов - использовать структуру данных списка в Python для хранения числовых значений, а затем продолжить их интерпретацию в виде массивов с numpy.
Массив также можно определить, объявив массив numpy с помощью функций np.array () или np.asarray (), за которыми следует квадратные скобки для создания одномерных или многомерных массивов. После создания этих массивов с ними можно выполнять различные операции и манипуляции. В следующих нескольких разделах мы посмотрим, какие действия обычно выполняются с массивами.
2. Форма массивов:
a = np.array([[1, 2, 3], [2, 3, 4]]) print(a.shape)
Выход: (2, 3)
Существенное понятие массивов - это различные формы, в которых они существуют. Форма массива numpy определяет различные типы вычислений и манипуляций, которые вы можете выполнять с ними. Форму массива numpy можно интерпретировать, как только конкретный массив будет создан. Атрибут .shape массива вернет кортеж его конкретной формы.
Важная тема, которую нужно понимать в массивах numpy, - это концепция N-мерного массива (или массива nd). Эти массивы - это те, которые имеют более одного измерения (не измерение строки или столбца), содержащие элементы одного размера и типа. N-мерные массивы чаще всего используются для выполнения множества математических операций.
3. Индексирование массива:
a = np.array([[1, 2, 3], [2, 3, 4]])
print("The middle elements are:", a[0][1], "and", a[1][1])
Вывод: средние элементы: 2 и 3.
Подобно индексированию списков, у нас также есть метод индексирования массивов для выполнения и управления конкретным элементом (или элементами) в определенном месте в массиве numpy. С помощью индексации массива мы можем получить доступ к любому требуемому элементу, зная его положение.
В приведенном выше примере мы пытаемся получить значения средних элементов из конкретного массива фигуры (2, 3). Первый элемент в массиве начинается с нулевого начального индекса. Конкретный номер строки и номер столбца указываются в квадратных скобках, что позволяет пользователям вычислять индексацию массива и получать конкретную позицию элементов.
4. Нарезка массива:
a = np.array([[1, 2, 3], [2, 3, 4]]) print(a[1:2])
Вывод: [[2 3 4]]
Еще одна интересная операция, которую мы можем выполнять с массивами numpy, аналогичными спискам, - это концепция нарезки. В этом методе мы пытаемся получить только необходимые элементы из определенного массива numpy. В примере блока кода, показанном выше, мы пытаемся получить все элементы только из второй строки, соответствующим образом вырезая первую строку.
Я бы рекомендовал изучить больше таких операций по нарезке массивов numpy самостоятельно. Попробуйте выполнить множество операций нарезки, чтобы увидеть разные результаты. Также рекомендуется ознакомиться с одной из моих предыдущих статей об освоении списков в Python по приведенной ниже ссылке, поскольку это поможет вам лучше понять интуицию при индексировании и нарезке.
5. Умножение массивов:
a = np.array([1, 2, 3]) b = np.array([[2],[1], [0]]) print(np.matmul(a, b))
Выход: [4]
С помощью массивов numpy можно очень просто вычислить умножение матриц. В приведенном выше примере мы замечаем, что конкретные массивы, которые имеют форму 1 X 3 и 3 X 1, умножаются, чтобы получить выходной результат матрицы 1 X 1. Множественные такие вычисления возможны с множеством массивов.
6. Точечные продукты:
a = np.array([1, 2, 3]) b = np.array([[2],[1], [0]]) print(np.dot(a, b))
Выход: [4]
Еще одно важное вычисление, которое возможно с массивами numpy, - это нахождение скалярных произведений двух переменных. Скалярное произведение - это, по сути, сумма всех кратных двух конкретных массивов. Концепция скалярных произведений используется повсеместно в машинном обучении. Примером могут служить случаи использования расчета весов или вычисления функции стоимости.
Согласно следующей справке, matmul отличается от dot двумя важными способами.
- Умножение на скаляры не допускается.
- Стеки матриц транслируются вместе, как если бы матрицы были элементами.
7. Сумма элементов в массиве:
a = np.array([1, 2, 3]) print(np.sum(a))
Выход: 6
Вычисление суммы многочисленных элементов в массиве numpy - довольно полезная задача, которую можно выполнить с помощью функции суммы, предлагаемой в этой библиотеке. Если бы вы должны были выполнить аналогичное действие с помощью списка, вы, вероятно, использовали бы цикл for для перебора всех элементов в списке и добавления их соответственно. Этот метод увеличит общую сложность, и, следовательно, для таких математических вычислений предпочтительнее использовать массивы numpy.
В качестве бонуса я хотел бы упомянуть еще один метод выполнения этого вычисления с помощью списков с сохранением временной и пространственной сложности. Это действие выполняется с помощью анонимных функций, доступных в Python. Вы можете использовать библиотеку functools для импорта функции сокращения. После импорта вы можете использовать эту расширенную функцию для вычисления всего вычисления в одной строке.
from functools import reduce a = [1, 2, 3] sum = reduce(lambda x, y: x+y, a) print(sum)
Если вы хотите узнать больше о понимании расширенных функций с помощью нескольких кодов и примеров, ознакомьтесь со статьей ниже. В нем более подробно рассматриваются конкретные концепции.
8. Среднее:
a = np.array([1, 2, 3]) print(np.mean(a))
Выход: 2.0
Numpy также позволяет разработчикам относительно легко вычислять среднее значение определенного массива. Среднее или среднее значение коммутируется путем добавления всех элементов и деления суммы на общее количество элементов, присутствующих в указанном массиве. Вычисление среднего значения важно в нескольких алгоритмах машинного обучения, таких как линейная регрессия для вычисления среднеквадратичной ошибки.
9. Возведение в степень:
x = 5 print(np.exp(x))
Выход: 148.4131591025766
Важной операцией, выполняемой в машинном обучении, является операция возведения в степень. Число Эйлера «е», значение которого приблизительно равно 2,718, имеет большое значение в вычислениях логарифмического основания. Следовательно, эта функция иногда используется для выполнения математических операций. Еще одна похожая функция, которую следует учитывать, - это операция pi, доступная в numpy.

Чрезвычайно популярный вариант использования сценария, в котором используется операция возведения в степень, - это определение сигмоидной функции. Изображение выше представляет собой следующее. Чтобы узнать больше о таких функциях активации, я бы порекомендовал ознакомиться с одной из моих предыдущих статей о популярной активации, называемой выпрямленным линейным блоком, по приведенной ниже ссылке.
10. Сглаживание массива:
a = np.array([[1, 2, 3], [2, 3, 4]]) a = np.ndarray.flatten(a) print(a.shape)
Выход: (6,)
Всякий раз, когда мы работаем с многомерными объектами, нам может потребоваться их сглаживание для конкретных задач. Функция flatten в numpy поможет вам сократить n-мерный массив до единого объекта. Другие аналогичные функции, которые необходимо изучить специалистам по данным, - это функции расширения или сжатия измерений, доступные в numpy.
11. Аранж:
a = np.arange(5, 15, 2) a
Выход: массив ([5, 7, 9, 11, 13])
Функция arange используется для создания массивов, которые обычно равномерно распределены с заданными интервалами. Вы можете описать начальную точку, точку остановки и количество шагов, соответственно, для создания любого массива numpy желаемой формы. Чтобы создать многомерный массив желаемой формы с помощью функции numpy.arange (), обязательно используйте функцию reshape.
12. Отсортируйте массив:
a = np.array([3, 1, 2, 5, 4]) np.sort(a)
Выход: массив ([1, 2, 3, 4, 5])
Когда у нас есть массив с перетасованными значениями, и мы хотим получить их все в порядке возрастания, то есть в возрастающем числовом порядке, функция сортировки весьма полезна. Хотя аналогичное действие можно выполнять и со списками, стоит отметить, что такие действия возможны в массивах numpy.
При выполнении различных операций вы можете столкнуться с многочисленными случаями, когда вы добавляете больше элементов в конкретный массив numpy, но как только вы закончите получать список значений, вы можете захотеть, чтобы все они были отсортированы вместе, чтобы соответственно идентифицировать значения. В таких случаях очень удобна функция sort ().
13. Перемешайте массивы:
np.random.rand(2, 2)
Выход: массив ([[0,21886868, 0,09692608],
[0,60732111, 0,85815271]])
Библиотека numpy также позволяет пользователям случайным образом генерировать и создавать массивы со случайными значениями. Эта функциональность похожа на случайную библиотеку в Python. Однако в numpy-версии функции random.rand () вы можете создавать n-мерные массивы для выполнения многочисленных вычислений и вычислений.
Одна из критических операций, при которой в машинном обучении и глубоком обучении обычно используются случайные операции numpy, - это когда мы хотим инициализировать набор весов или смещений со случайными значениями. Обычно лучший подход - инициализировать определенные значения случайным значением, а не нулем. Для понимания концепции случайности на примере пропорциональной выборки рекомендуется ознакомиться со следующей статьей, представленной ниже.
14. Минимум, максимум и абсолют:
a = np.array([1, 2, -3, 4, 5]) print(np.min(a)) print(np.max(a)) print(np.abs(a))
Вывод: -3
5
[1 2 3 4 5]
Рассмотрим некоторые другие базовые операции, которые мы можем выполнять с массивами numpy, чтобы узнать минимальное, максимальное и абсолютное значения определенного массива numpy. Функции np.min () и np.max () не требуют пояснений, поскольку эти операции используются для вычисления минимального и максимального значений в заданном массиве numpy соответственно.
В то время как две другие функции возвращают одно значение, которое является либо одним минимальным, либо максимальным значением, абсолютная функция вернет обратно массив. Однако все базовые значения возвращаются без учета отрицательного знака. Другие подобные функции, с которыми я бы рекомендовал пользователям поэкспериментировать, - это операции с потолком, полом и другие подобные операции.
15. Тригонометрические функции:
print(np.sin(np.pi/3.)) print(np.cos(np.pi/3.))
Выход: 0,8660254037844386
0,5000000000000001
Помимо всех исключительных задач, которые вы выполняете с помощью массивов numpy, вы также можете выполнять тригонометрические операции с этой библиотекой. В приведенном выше примере мы выполнили пару простых тригонометрических операций с синусом и косинусом для шестидесяти градусов, чтобы получить соответствующие результаты. Не стесняйтесь исследовать другие похожие тригонометрические функции.
Заключение:
Без математики ты ничего не сможешь сделать. Все вокруг - математика. Все, что вас окружает, - это числа. - Шакунтала Деви
Numpy - одна из лучших библиотек, доступных в Python для широкого круга задач. В то время как машины не самые лучшие с текстовой или визуальной информацией, когда они преобразуются в математические массивы с помощью numpy, становится возможным вычисление многих критических задач. Помимо улучшенной совместимости, становится проще выполнять определенные задачи. Следовательно, numpy - одна из лучших библиотек, которую специалисты по данным должны стремиться освоить.
В этой статье мы разобрались с пятнадцатью наиболее важными функциями numpy, о которых должен знать каждый специалист по данным. В то время как некоторые из функций, которые мы обсуждали, были многочисленными действиями, которые можно было выполнять с множественными массивами, такими как формирование, индексирование и нарезка, другие были различными вычислениями, которые мы могли выполнять с множественными массивами. Некоторые из них включают sum (), mean (), arange () и другие подобные операции.
С этими многочисленными массивами вы можете опробовать еще массу вещей. Обязательно исследуйте и углубитесь в следующую тему. Если у вас есть какие-либо вопросы, связанные с различными пунктами, изложенными в этой статье, дайте мне знать в комментариях ниже. Я постараюсь ответить вам как можно скорее.
Ознакомьтесь с некоторыми из моих других статей, которые могут вам понравиться!
Спасибо всем, что дожили до конца. Я надеюсь, что всем вам понравилось читать эту статью. Желаю всем прекрасного дня!