Длина вектора в numpy

Работа с векторами в Python с помощью NumPy

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

Видео:Основы NumPy Python | Массивы, Матрицы И Операции Над НимиСкачать

Основы NumPy Python | Массивы, Матрицы И Операции Над Ними

Что такое вектор в Python?

Вектор известен как одномерный массив. Вектор в Python – это единственный одномерный массив списков, который ведет себя так же, как список Python. Согласно Google, вектор представляет направление, а также величину; особенно он определяет положение одной точки в пространстве относительно другой.

Векторы очень важны в машинном обучении, потому что у них есть величина, а также особенности направления. Давайте разберемся, как мы можем создать вектор на Python.

Видео:► 10. МАТРИЦЫ И ВЕКТОРА | Курс по Numpy.Скачать

► 10. МАТРИЦЫ И ВЕКТОРА | Курс по Numpy.

Создание вектора в Python

Модуль Python Numpy предоставляет метод numpy.array(), который создает одномерный массив, то есть вектор. Вектор может быть горизонтальным или вертикальным.

Вышеупомянутый метод принимает список в качестве аргумента и возвращает numpy.ndarray.

Давайте разберемся в следующих примерах.

Пример – 1: горизонтальный вектор

Пример – 2: Вертикальный вектор

Видео:#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy урокиСкачать

#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy уроки

Базовые операции вектора Python

После создания вектора мы теперь будем выполнять арифметические операции над векторами.

Ниже приведен список основных операций, которые мы можем производить с векторами:

  • сложение;
  • вычитание;
  • умножение;
  • деление;
  • точечное произведение;
  • скалярные умножения.

Видео:#10. Базовые математические функции | NumPy урокиСкачать

#10. Базовые математические функции | NumPy уроки

Сложение двух векторов

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

Давайте разберемся в следующем примере.

Видео:БМЭ193. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать

БМЭ193. Python для анализа данных. Работа с векторами и матрицами в Numpy.

Вычитание

Вычитание векторов выполняется так же, как и сложение, оно следует поэлементному подходу, и элементы вектора 2 будут вычтены из вектора 1. Давайте разберемся в следующем примере.

Видео:#5. Изменение формы массивов, добавление и удаление осей | NumPy урокиСкачать

#5. Изменение формы массивов, добавление и удаление осей | NumPy уроки

Умножение векторов

Элементы вектора 1 умножаются на вектор 2 и возвращают векторы той же длины, что и векторы умножения.

Умножение производится следующим образом.

Первый элемент вектора 1 умножается на первый элемент соответствующего вектора 2 и так далее.

Видео:Fill diagonal value in Numpy Array - Numpy TutorialСкачать

Fill diagonal value in Numpy Array - Numpy Tutorial

Операция деления двух векторов

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

Давайте разберемся в следующем примере.

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

Видео:Линейная алгебра для Data Science: Норма вектора / Модуль вектора в Numpy #numpy #datascience #mathСкачать

Линейная алгебра для Data Science: Норма вектора / Модуль вектора в Numpy #numpy #datascience #math

Векторное точечное произведение

Векторное скалярное произведение выполняется между двумя последовательными векторами одинаковой длины и возвращает единичное скалярное произведение. Мы будем использовать метод .dot() для выполнения скалярного произведения. Это произойдет, как показано ниже.

Давайте разберемся в следующем примере.

Видео:Numpy векторизация вместо циклов в PythonСкачать

Numpy векторизация вместо циклов в Python

Векторно-скалярное умножение

В операции скалярного умножения; мы умножаем скаляр на каждую компоненту вектора. Давайте разберемся в следующем примере.

В приведенном выше коде скалярное значение умножается на каждый элемент вектора в порядке s * v =(s * v1, s * v2, s * v3).

Видео:Векторы. Метод координат. Вебинар | МатематикаСкачать

Векторы. Метод координат. Вебинар | Математика

Операции над векторами в numpy

Рассмотрим некоторые общие функции линейной алгебры и их применение на чистом Python и numpy. Все примеры — на Jupyter Notebook.

Списки в Python не являются векторами, по умолчанию над ними нельзя производить поэлементные операции.

В Python необходимо определять собственные функции, чтобы оперировать списками как векторами. Для сравнения: в numpy для аналогичных операций достаточно одной строки кода.

Сложение векторов

Но, конечно, в numpy это можно сделать с помощью оператора + на numpy-массивах или с помощью метода sum() .

Вычитание векторов

Скалярное умножение

Среднее значение вектора

Скалярное произведение

Сумма квадратов

Величина вектора

Расстояние между двумя векторами

Видео:БМЭ191. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать

БМЭ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 урокиСкачать

#7. Индексация, срезы, итерирование массивов | NumPy уроки

Основы линейной алгебры с Numpy (часть 1)

Дата публикации Sep 21, 2019

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

Длина вектора в numpy

Когда дело доходит до линейной алгебры, мне очень нравится эта цитата:

Если бы Data Science был Бэтменом, линейная алгебра была бы Робином. [1]

Это аккуратно отражает суть нетехническим способом.

Почему я должен изучать линейную алгебру?

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

Не только это, но вы также будете считаться крутым ребенком, как эти двое:

Почему я должен читать этот пост?

Этот пост, конечно, не научит вас мельчайшим деталям по этой теме, есть множество книг, которые их освещают. Пост также не будет вдаваться в доказательства, опять же, почитайте книгу какого-нибудь математического или технического факультета, если вам это нравится. Этот пост, однако, предоставит вам необходимую интуицию за линейной алгеброй (и некоторыми легкими вычислениями) в 14 различных областях.

Да, вы правильно прочитали. Я планирую охватить 14 различных тем в двух статьях. Это займет у вас некоторое время, чтобы прочитать его (и я его напишу), но если вы новичок в этом, я настоятельно рекомендую читать не более 2–3 тем в день, а затем искать в Интернете больше практических проблем.

Как устроена статья?

Итак, каждая из тем разделена на 3 части:

  1. Теоретическое объяснение
  2. Пример (ручные расчеты)
  3. Реализация на Python (с Numpy)

Я не буду лгать тебе — это будет много работы. Эта первая часть будет охватыватьвекторыи вот список тем:

  1. прибавление
  2. Скалярное Умножение
  3. Скалярное произведение
  4. Норма
  5. Единичный вектор
  6. Угол между векторами

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

Вы после окончания этой статьи. ПоGIPHY

Видео:#2. Основные типы данных. Создание массивов функцией array() | NumPy урокиСкачать

#2. Основные типы данных. Создание массивов функцией array() | NumPy уроки

Что такое вектор?

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

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

Я сказал, что вы должны попытаться представить векторы как стрелки — это идеальная терминология, потому что стрелка имеет как четкое направление, так и четкую величину (длину).

Векторы чаще всего обозначаютсястрочная буква и стрелкавыше, указывая вправо:

Длина вектора в numpy

Просто, правда?
Давайте теперь перейдем к некоторым векторным операциям, я знаю, насколько нетерпеливым вы должны быть (*смеется*).

Видео:Лекция 8 Оптимизация выполнения кода, часть 3: Векторизация в NumPyСкачать

Лекция 8 Оптимизация выполнения кода, часть 3: Векторизация в NumPy

1. Добавление вектора

Давайте погрузимся в первую векторную операцию, которая является сложением векторов (вычитание работает так же, только вы бы использовали знак минус вместо плюса, очевидно).

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

Посмотрите на это фото отWikipedia Commons:

Длина вектора в numpy

В двух словах, чтобы добавить векторбк вектору (получитьа + б), нарисуйте вектор от начала координат, а затем нарисовать векторбиз кончика вектора , Теперь, чтобы получитьа + б, вам нужно только подключить начало координат к кончику вектораб,

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

А вот общая формула для сложения векторов:

Длина вектора в numpy

Сейчас я сделаю простой пример вручную, а позже реализую этот же пример на Python.

Длина вектора в numpy

Еще раз, возьмите лист бумаги и нарисуйте его — это довольно интуитивно понятно.

Реализация в Python:

Как видите, Numpy позволяет использовать оператор сложения, довольно аккуратно!

Видео:Machine Learning: Numpy урок 8. Векторные операции.Скачать

Machine Learning: Numpy урок 8. Векторные операции.

2. Скалярное Умножение

Позвольте мне процитировать себя из ранее в этой статье:

Если у вас есть только величина, но не направление, то вы говорите о скалярах.

По сути, это означает, что скаляр — это одно число, которое может изменять только величину вектора, но не его направление. На самом деле это означает, что вектор, умноженный на любой скаляр, останется на той же «линии», у него будет то же направление, только его длина будет изменена.

Отлично, давайте посмотрим формулу скалярного умножения:

Длина вектора в numpy

Над,Nпредставляет любое число. Давайте посмотрим на пример. скалярNбудет 2, что означает, что каждый компонент вектора будет умножен на 2.

Длина вектора в numpy

Реализация в Python:

Круто, давайте перейдем к следующей теме!

Видео:Я РАЗВИЛ ЦИВИЛИЗАЦИЮ ЛЮДЕЙ ПРОТИВ НЕЙРОСЕТИ В майнкрафт хардкорСкачать

Я РАЗВИЛ ЦИВИЛИЗАЦИЮ ЛЮДЕЙ ПРОТИВ НЕЙРОСЕТИ В майнкрафт хардкор

3. Точечный продукт

Чтобы рассчитать скалярное произведение двух векторов, сначала нужноумножить соответствующие элементы(x1поy1,x2поy2и тд) а потомсуммировать условия продукта,

Эта концепция на самом деле гораздо проще понять, когда вы видите общую формулу, так что вот она:

Длина вектора в numpy

Теперь я запишу базовый пример с двумя векторами в 2-мерном пространстве:

Длина вектора в numpy

Реализация в Python:

Да, это почти все о точечном продукте — не особо о чем говорить.

Видео:#13. Транслирование массивов | NumPy урокиСкачать

#13. Транслирование массивов | NumPy уроки

4. Векторная норма

Норма — это просто еще один термин для длины или величины вектора, который обозначается двойными трубками (||) с каждой стороны. Он определяется как квадратный корень из суммы квадратов для каждого компонента вектора, как вы увидите в формуле ниже.

Расчет состоит из 3 этапов:

  1. Квадрат каждого компонента
  2. Сумма всех квадратов
  3. Взять квадратный корень

Как вы можете себе представить, формула глупо проста:

Длина вектора в numpy

А вот практический пример вектора в 2-мерном пространстве:

Длина вектора в numpy

Реализация в Python:

Видео:#1. Пакет numpy - установка и первое знакомство | NumPy урокиСкачать

#1. Пакет numpy - установка и первое знакомство | NumPy уроки

5. Единица Вектор

Основная причина, по которой вы рассчитываете единичные векторы, заключается в том, что вы заботитесь только о направлении, а не о величине. Этот процесс нормализации включает в себя уменьшение величины, чтобы не искажать другие вычисления. [2]

Единичный вектор чаще всего обозначается символом шляпы (^) и вычисляется путем вычисления нормы, а затем деления каждого компонента вектора на норму.

Без лишних слов, вот формула:

Длина вектора в numpy

В качестве примера я вычислю единичный вектор из произвольного трехмерного вектора:

Длина вектора в numpy

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

Реализация в Python будет немного другой здесь. Здесь нетвстроенная функцияв Numpy для вычисления единичных векторов (по крайней мере, я не знаю об этом), но поскольку вы знаете формулу, процесс вычисления тривиален. Я объявил функцию, которая будет принимать вектор как вход, а затем возвращать этот вектор, деленный на его норму:

Видео:#3. Функции автозаполнения, создания матриц и числовых диапазонов | NumPy урокиСкачать

#3. Функции автозаполнения, создания матриц и числовых диапазонов  | NumPy уроки

6. Угол между векторами

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

Расчет углов между векторами имеет много практических применений. Он широко используется вNLP(Обработка естественного языка) при поиске строк, которые очень похожи. Например, когдаTF-IDFиспользуется для некоторых текстовых данных, каждый ввод (попробуйте представить ввод как отдельный текст электронной почты) преобразуется в вектор.

Тем самым вы будете уверены, что все векторы имеют одинаковые размеры, и если вход содержит определенное слово в определенной позиции, значение в соответствующем компоненте вектора будет равно 1, а в противном случае — 0. Если затем вычислить угол между векторами, то те, где угол в наименьшем будет более похожим (в примере с электронной почтой, представьте, что два отдельных письма относятся к одной теме).

Надеюсь, вы сможете увидеть потенциальные варианты использования в вашем проекте, если не будете беспокоиться об этом, вы увидите это в конце концов.

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

Длина вектора в numpy

И вот действительно простой пример двух произвольных трехмерных векторов:

Длина вектора в numpy

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

И это в значительной степени заканчивает разговор о векторах.Разве это не плохо?

Вывод

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

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

3Blue1Brown — Сущность плейлиста линейной алгебры

Поделиться или сохранить к себе: