В этом уроке мы узнаем, как создать вектор с помощью библиотеки Numpy в Python. Мы также рассмотрим основные операции с векторами, такие как сложение, вычитание, деление и умножение двух векторов, векторное точечное произведение и векторное скалярное произведение.
- Что такое вектор в Python?
- Создание вектора в Python
- Базовые операции вектора Python
- Сложение двух векторов
- Вычитание
- Умножение векторов
- Операция деления двух векторов
- Векторное точечное произведение
- Векторно-скалярное умножение
- Операции над векторами в numpy
- Сложение векторов
- Вычитание векторов
- Скалярное умножение
- Среднее значение вектора
- Скалярное произведение
- Сумма квадратов
- Величина вектора
- Расстояние между двумя векторами
- На заметку
- Основы линейной алгебры с Numpy (часть 1)
- Что такое вектор?
- 1. Добавление вектора
- 2. Скалярное Умножение
- 3. Точечный продукт
- 4. Векторная норма
- 5. Единица Вектор
- 6. Угол между векторами
- Вывод
Видео:Основы NumPy Python | Массивы, Матрицы И Операции Над НимиСкачать
Что такое вектор в Python?
Вектор известен как одномерный массив. Вектор в Python – это единственный одномерный массив списков, который ведет себя так же, как список Python. Согласно Google, вектор представляет направление, а также величину; особенно он определяет положение одной точки в пространстве относительно другой.
Векторы очень важны в машинном обучении, потому что у них есть величина, а также особенности направления. Давайте разберемся, как мы можем создать вектор на Python.
Видео:► 10. МАТРИЦЫ И ВЕКТОРА | Курс по Numpy.Скачать
Создание вектора в Python
Модуль Python Numpy предоставляет метод numpy.array(), который создает одномерный массив, то есть вектор. Вектор может быть горизонтальным или вертикальным.
Вышеупомянутый метод принимает список в качестве аргумента и возвращает numpy.ndarray.
Давайте разберемся в следующих примерах.
Пример – 1: горизонтальный вектор
Пример – 2: Вертикальный вектор
Видео:#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy урокиСкачать
Базовые операции вектора Python
После создания вектора мы теперь будем выполнять арифметические операции над векторами.
Ниже приведен список основных операций, которые мы можем производить с векторами:
- сложение;
- вычитание;
- умножение;
- деление;
- точечное произведение;
- скалярные умножения.
Видео:#10. Базовые математические функции | NumPy урокиСкачать
Сложение двух векторов
В векторном сложении это происходит поэлементно, что означает, что сложение будет происходить поэлементно, а длина будет такой же, как у двух аддитивных векторов.
Давайте разберемся в следующем примере.
Видео:БМЭ193. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать
Вычитание
Вычитание векторов выполняется так же, как и сложение, оно следует поэлементному подходу, и элементы вектора 2 будут вычтены из вектора 1. Давайте разберемся в следующем примере.
Видео:#5. Изменение формы массивов, добавление и удаление осей | NumPy урокиСкачать
Умножение векторов
Элементы вектора 1 умножаются на вектор 2 и возвращают векторы той же длины, что и векторы умножения.
Умножение производится следующим образом.
Первый элемент вектора 1 умножается на первый элемент соответствующего вектора 2 и так далее.
Видео:Fill diagonal value in Numpy Array - Numpy TutorialСкачать
Операция деления двух векторов
В операции деления результирующий вектор содержит значение частного, полученное при делении двух элементов вектора.
Давайте разберемся в следующем примере.
Как видно из вышеприведенного вывода, операция деления вернула частное значение элементов.
Видео:Линейная алгебра для Data Science: Норма вектора / Модуль вектора в Numpy #numpy #datascience #mathСкачать
Векторное точечное произведение
Векторное скалярное произведение выполняется между двумя последовательными векторами одинаковой длины и возвращает единичное скалярное произведение. Мы будем использовать метод .dot() для выполнения скалярного произведения. Это произойдет, как показано ниже.
Давайте разберемся в следующем примере.
Видео:Numpy векторизация вместо циклов в PythonСкачать
Векторно-скалярное умножение
В операции скалярного умножения; мы умножаем скаляр на каждую компоненту вектора. Давайте разберемся в следующем примере.
В приведенном выше коде скалярное значение умножается на каждый элемент вектора в порядке s * v =(s * v1, s * v2, s * v3).
Видео:Векторы. Метод координат. Вебинар | МатематикаСкачать
Операции над векторами в numpy
Рассмотрим некоторые общие функции линейной алгебры и их применение на чистом Python и numpy. Все примеры — на Jupyter Notebook.
Списки в Python не являются векторами, по умолчанию над ними нельзя производить поэлементные операции.
В Python необходимо определять собственные функции, чтобы оперировать списками как векторами. Для сравнения: в numpy для аналогичных операций достаточно одной строки кода.
Сложение векторов
Но, конечно, в numpy это можно сделать с помощью оператора + на numpy-массивах или с помощью метода sum() .
Вычитание векторов
Скалярное умножение
Среднее значение вектора
Скалярное произведение
Сумма квадратов
Величина вектора
Расстояние между двумя векторами
Видео:БМЭ191. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать
На заметку
В ряде рассмотренных примеров используется sum() . Чем отличается встроенная Python-функция sum() от numpy.sum() ? Например тем, что numpy.sum() быстрее обрабатывает numpy-массивы, но медленнее Python-списки.
Проверим в Python 2.7.2 и Numpy 1.6.1:
Результат при x = range(1000) :
Результат при x = np.random.standard_normal(1000) :
Согласитесь, имеет смысл учитывать контекст использования.
В основе статьи — материал Бена Алекса Кина. Мой небольшой вклад — перевод, идиоматический код numpy-примеров и дополнительные пояснения.
Видео:#7. Индексация, срезы, итерирование массивов | NumPy урокиСкачать
Основы линейной алгебры с Numpy (часть 1)
Дата публикации Sep 21, 2019
Ах, математика Вы не можете избежать этого навсегда. Вы можете попробовать, а затем попробовать больше, но рано или поздно вам понадобится некоторая базовая интуиция, если вы серьезно настроены продвинуться по карьерной лестнице в науке о данных.
Когда дело доходит до линейной алгебры, мне очень нравится эта цитата:
Если бы Data Science был Бэтменом, линейная алгебра была бы Робином. [1]
Это аккуратно отражает суть нетехническим способом.
Почему я должен изучать линейную алгебру?
Отличный вопрос
Проще говоря, если вы понимаете это, вы сможете разработать лучшую интуицию для машинного обучения и алгоритмов глубокого обучения, и вы не будете рассматривать их как черные ящики. Кроме того, вы также сможете разрабатывать алгоритмы с нуля и создавать свои собственные вариации.
Не только это, но вы также будете считаться крутым ребенком, как эти двое:
Почему я должен читать этот пост?
Этот пост, конечно, не научит вас мельчайшим деталям по этой теме, есть множество книг, которые их освещают. Пост также не будет вдаваться в доказательства, опять же, почитайте книгу какого-нибудь математического или технического факультета, если вам это нравится. Этот пост, однако, предоставит вам необходимую интуицию за линейной алгеброй (и некоторыми легкими вычислениями) в 14 различных областях.
Да, вы правильно прочитали. Я планирую охватить 14 различных тем в двух статьях. Это займет у вас некоторое время, чтобы прочитать его (и я его напишу), но если вы новичок в этом, я настоятельно рекомендую читать не более 2–3 тем в день, а затем искать в Интернете больше практических проблем.
Как устроена статья?
Итак, каждая из тем разделена на 3 части:
- Теоретическое объяснение
- Пример (ручные расчеты)
- Реализация на Python (с Numpy)
Я не буду лгать тебе — это будет много работы. Эта первая часть будет охватыватьвекторыи вот список тем:
- прибавление
- Скалярное Умножение
- Скалярное произведение
- Норма
- Единичный вектор
- Угол между векторами
Теперь, когда введение закончено, давайте не будем откладывать неизбежное. Возьмите чашку кофе (или что-нибудь покрепче) и отправляйтесь со мной в удивительный мир линейной алгебры.
Вы после окончания этой статьи. ПоGIPHY
Видео:#2. Основные типы данных. Создание массивов функцией array() | NumPy урокиСкачать
Что такое вектор?
Да, нет смысла начинать с добавления вектора, если вы понятия не имеете, что такое вектор. Для начала подумайте о векторе как о стрелке в пространстве. Вы должны иметь в виду две величины здесь:
Я имею в виду направлениекуда в космосе указывает стрелкаи величина говорит вамкак далеко вы должны идтив этом направлении. Если у вас есть только величина, но не направление, то вы говорите оскаляры, Как только вы дадите скаляру некоторое направление, он станет вектором.
Я сказал, что вы должны попытаться представить векторы как стрелки — это идеальная терминология, потому что стрелка имеет как четкое направление, так и четкую величину (длину).
Векторы чаще всего обозначаютсястрочная буква и стрелкавыше, указывая вправо:
Просто, правда?
Давайте теперь перейдем к некоторым векторным операциям, я знаю, насколько нетерпеливым вы должны быть (*смеется*).
Видео:Лекция 8 Оптимизация выполнения кода, часть 3: Векторизация в NumPyСкачать
1. Добавление вектора
Давайте погрузимся в первую векторную операцию, которая является сложением векторов (вычитание работает так же, только вы бы использовали знак минус вместо плюса, очевидно).
Об этой основной операции сказать особо нечего, только то, что она выполняетсядобавление соответствующих компонентов, Это помогает понять суть вопроса, если вы думаете о том, что происходит с вектором, а не только с точки зрения простого сложения чисел.
Посмотрите на это фото отWikipedia Commons:
В двух словах, чтобы добавить векторбк вектору (получитьа + б), нарисуйте вектор от начала координат, а затем нарисовать векторбиз кончика вектора , Теперь, чтобы получитьа + б, вам нужно только подключить начало координат к кончику вектораб,
Может показаться излишним, если вы услышите это в первый раз, но просто возьмите ручку и бумагу и нарисуйте это, вы сразу же поймете суть.
А вот общая формула для сложения векторов:
Сейчас я сделаю простой пример вручную, а позже реализую этот же пример на Python.
Еще раз, возьмите лист бумаги и нарисуйте его — это довольно интуитивно понятно.
Реализация в Python:
Как видите, Numpy позволяет использовать оператор сложения, довольно аккуратно!
Видео:Machine Learning: Numpy урок 8. Векторные операции.Скачать
2. Скалярное Умножение
Позвольте мне процитировать себя из ранее в этой статье:
Если у вас есть только величина, но не направление, то вы говорите о скалярах.
По сути, это означает, что скаляр — это одно число, которое может изменять только величину вектора, но не его направление. На самом деле это означает, что вектор, умноженный на любой скаляр, останется на той же «линии», у него будет то же направление, только его длина будет изменена.
Отлично, давайте посмотрим формулу скалярного умножения:
Над,Nпредставляет любое число. Давайте посмотрим на пример. скалярNбудет 2, что означает, что каждый компонент вектора будет умножен на 2.
Реализация в Python:
Круто, давайте перейдем к следующей теме!
Видео:Я РАЗВИЛ ЦИВИЛИЗАЦИЮ ЛЮДЕЙ ПРОТИВ НЕЙРОСЕТИ В майнкрафт хардкорСкачать
3. Точечный продукт
Чтобы рассчитать скалярное произведение двух векторов, сначала нужноумножить соответствующие элементы(x1поy1,x2поy2и тд) а потомсуммировать условия продукта,
Эта концепция на самом деле гораздо проще понять, когда вы видите общую формулу, так что вот она:
Теперь я запишу базовый пример с двумя векторами в 2-мерном пространстве:
Реализация в Python:
Да, это почти все о точечном продукте — не особо о чем говорить.
Видео:#13. Транслирование массивов | NumPy урокиСкачать
4. Векторная норма
Норма — это просто еще один термин для длины или величины вектора, который обозначается двойными трубками (||) с каждой стороны. Он определяется как квадратный корень из суммы квадратов для каждого компонента вектора, как вы увидите в формуле ниже.
Расчет состоит из 3 этапов:
- Квадрат каждого компонента
- Сумма всех квадратов
- Взять квадратный корень
Как вы можете себе представить, формула глупо проста:
А вот практический пример вектора в 2-мерном пространстве:
Реализация в Python:
Видео:#1. Пакет numpy - установка и первое знакомство | NumPy урокиСкачать
5. Единица Вектор
Основная причина, по которой вы рассчитываете единичные векторы, заключается в том, что вы заботитесь только о направлении, а не о величине. Этот процесс нормализации включает в себя уменьшение величины, чтобы не искажать другие вычисления. [2]
Единичный вектор чаще всего обозначается символом шляпы (^) и вычисляется путем вычисления нормы, а затем деления каждого компонента вектора на норму.
Без лишних слов, вот формула:
В качестве примера я вычислю единичный вектор из произвольного трехмерного вектора:
Вам не нужно делать последний шаг — делить на квадратный корень — но это делает конечный результат более привлекательным.
Реализация в Python будет немного другой здесь. Здесь нетвстроенная функцияв Numpy для вычисления единичных векторов (по крайней мере, я не знаю об этом), но поскольку вы знаете формулу, процесс вычисления тривиален. Я объявил функцию, которая будет принимать вектор как вход, а затем возвращать этот вектор, деленный на его норму:
Видео:#3. Функции автозаполнения, создания матриц и числовых диапазонов | NumPy урокиСкачать
6. Угол между векторами
Это, вероятно, тема линейной алгебры, которая меня больше всего волнует. И причина в том, что я использую это здесь и там в моей повседневной работе для некоторых интересных вещей.
Расчет углов между векторами имеет много практических применений. Он широко используется вNLP(Обработка естественного языка) при поиске строк, которые очень похожи. Например, когдаTF-IDFиспользуется для некоторых текстовых данных, каждый ввод (попробуйте представить ввод как отдельный текст электронной почты) преобразуется в вектор.
Тем самым вы будете уверены, что все векторы имеют одинаковые размеры, и если вход содержит определенное слово в определенной позиции, значение в соответствующем компоненте вектора будет равно 1, а в противном случае — 0. Если затем вычислить угол между векторами, то те, где угол в наименьшем будет более похожим (в примере с электронной почтой, представьте, что два отдельных письма относятся к одной теме).
Надеюсь, вы сможете увидеть потенциальные варианты использования в вашем проекте, если не будете беспокоиться об этом, вы увидите это в конце концов.
Вот формула для расчета угла. Ничего особенного, вы беретескалярное произведениедвух векторов и разделить это напроизведение норм:
И вот действительно простой пример двух произвольных трехмерных векторов:
Как и с единичными векторами, Numpy не имеет встроенной функции для расчета угла. Но эй, вы знаете формулу,так как трудно это может быть?
Единственная «хитрость» здесь — преобразовать радианы в градусы, потому что Numpy по умолчанию вернет результат в радианах. Все остальное так же просто, как и следовало ожидать.
И это в значительной степени заканчивает разговор о векторах.Разве это не плохо?
Вывод
Вот и все для некоторой основной сущности линейной алгебры для науки о данных, по крайней мере, когда речь идет о векторах. Следующая статья будет скрывать матрицы и будет немного длиннее этой.
Пока вы ждете, я настоятельно рекомендую вам проверить этот потрясающий канал на YouTube, в частности, этот плейлист. Это действительно глубоко встраивает интуицию в базовые и продвинутые понятия в линейной алгебре. Этот канал является моей честной рекомендацией, если вы знаете, как рассчитывать вещи, но на самом деле не знаете, почему вы делаете расчеты
3Blue1Brown — Сущность плейлиста линейной алгебры