В этом уроке мы узнаем, как создать вектор с помощью библиотеки Numpy в Python. Мы также рассмотрим основные операции с векторами, такие как сложение, вычитание, деление и умножение двух векторов, векторное точечное произведение и векторное скалярное произведение.
- Что такое вектор в Python?
- Создание вектора в Python
- Базовые операции вектора Python
- Сложение двух векторов
- Вычитание
- Умножение векторов
- Операция деления двух векторов
- Векторное точечное произведение
- Векторно-скалярное умножение
- Библиотека Numpy. Полезные инструменты
- Создание векторов и матриц
- np.arange()
- np.matrix()
- np.zeros(), np.eye()
- Работа с матрицами и векторами
- Сложение матриц
- Вычитание матриц
- Умножение матрицы на число
- Умножение матриц
- Транспонирование матриц
- … И другие полезные функции
- np.ravel()
- np.where()
- np.meshgrid()
- np.random.permutation()
- P.S.
- Операции над векторами в numpy
- Сложение векторов
- Вычитание векторов
- Скалярное умножение
- Среднее значение вектора
- Скалярное произведение
- Сумма квадратов
- Величина вектора
- Расстояние между двумя векторами
- На заметку
- 📽️ Видео
Видео:#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy урокиСкачать
Что такое вектор в Python?
Вектор известен как одномерный массив. Вектор в Python – это единственный одномерный массив списков, который ведет себя так же, как список Python. Согласно Google, вектор представляет направление, а также величину; особенно он определяет положение одной точки в пространстве относительно другой.
Векторы очень важны в машинном обучении, потому что у них есть величина, а также особенности направления. Давайте разберемся, как мы можем создать вектор на Python.
Видео:Основы NumPy Python | Массивы, Матрицы И Операции Над НимиСкачать
Создание вектора в Python
Модуль Python Numpy предоставляет метод numpy.array(), который создает одномерный массив, то есть вектор. Вектор может быть горизонтальным или вертикальным.
Вышеупомянутый метод принимает список в качестве аргумента и возвращает numpy.ndarray.
Давайте разберемся в следующих примерах.
Пример – 1: горизонтальный вектор
Пример – 2: Вертикальный вектор
Видео:БМЭ193. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать
Базовые операции вектора Python
После создания вектора мы теперь будем выполнять арифметические операции над векторами.
Ниже приведен список основных операций, которые мы можем производить с векторами:
- сложение;
- вычитание;
- умножение;
- деление;
- точечное произведение;
- скалярные умножения.
Видео:БМЭ191. Python для анализа данных. Работа с векторами и матрицами в Numpy.Скачать
Сложение двух векторов
В векторном сложении это происходит поэлементно, что означает, что сложение будет происходить поэлементно, а длина будет такой же, как у двух аддитивных векторов.
Давайте разберемся в следующем примере.
Видео:► 10. МАТРИЦЫ И ВЕКТОРА | Курс по Numpy.Скачать
Вычитание
Вычитание векторов выполняется так же, как и сложение, оно следует поэлементному подходу, и элементы вектора 2 будут вычтены из вектора 1. Давайте разберемся в следующем примере.
Видео:Семинар. Библиотека NumpyСкачать
Умножение векторов
Элементы вектора 1 умножаются на вектор 2 и возвращают векторы той же длины, что и векторы умножения.
Умножение производится следующим образом.
Первый элемент вектора 1 умножается на первый элемент соответствующего вектора 2 и так далее.
Видео:#1 | Python NumPy | Что такое array, arange и dotСкачать
Операция деления двух векторов
В операции деления результирующий вектор содержит значение частного, полученное при делении двух элементов вектора.
Давайте разберемся в следующем примере.
Как видно из вышеприведенного вывода, операция деления вернула частное значение элементов.
Видео:Екатерина Тузова - Numpy: ВекторизацияСкачать
Векторное точечное произведение
Векторное скалярное произведение выполняется между двумя последовательными векторами одинаковой длины и возвращает единичное скалярное произведение. Мы будем использовать метод .dot() для выполнения скалярного произведения. Это произойдет, как показано ниже.
Давайте разберемся в следующем примере.
Видео:#4. Свойства и представления массивов, создание их копий | NumPy урокиСкачать
Векторно-скалярное умножение
В операции скалярного умножения; мы умножаем скаляр на каждую компоненту вектора. Давайте разберемся в следующем примере.
В приведенном выше коде скалярное значение умножается на каждый элемент вектора в порядке s * v =(s * v1, s * v2, s * v3).
Видео:#6. Объединение и разделение массивов | NumPy урокиСкачать
Библиотека Numpy. Полезные инструменты
В статье рассмотрены некоторые полезные инструменты из библиотеки Numpy, которые довольно часто приходится использовать при решении задач в рамках машинного обучения и анализа данных.
Видео:#5. Изменение формы массивов, добавление и удаление осей | NumPy урокиСкачать
Создание векторов и матриц
Вектора и матрицы – это основные объекты, которыми приходится оперировать в машинном обучении. Numpy предоставляет довольно много удобных функций, которые строят эти объекты.
Перед тем как их использовать не забудьте импортировать Numpy в проект.
np.arange()
Функция arange() аналогична по своему назначению функции range() из стандартной библиотеки Python . Ее основное отличие заключается в том, что arange() позволяет строить вектор с указанием шага в виде десятичной дроби.
Синтаксис использования функции следующий:
arange(start, stop, step)
В первом варианте будет создан вектор из целых чисел от 0 до stop .
Второй вариант позволяет задавать интервал, в этом случае вектор также будет содержать целые числа.
Третий вариант позволяет определить интервал чисел и шаг, который может быть десятичным числом
np.matrix()
Matrix является удобным инструментом для задания матрицы. При этом можно использовать Matlab стиль, либо передать в качестве аргумента список Python (или массив Numpy ).
Вариант со списком Python .
Вариант с массивом Numpy .
Вариант в Matlab стиле.
np.zeros(), np.eye()
В арсенале Numpy есть функции для создания специальных матриц: нулевых и единичных. Нулевой называется матрица, состоящая полностью из нулей. Для ее создания удобно использовать функцию zeros() , в качестве аргумента в нее передается кортеж из двух элементов, первый из них – это количество строк, второй – столбцов.
Функция eye() создает единичную матрицу – квадратную матрицу, у которой элементы главной диагонали равны единицы, все остальные – нулю.
Видео:#10. Базовые математические функции | NumPy урокиСкачать
Работа с матрицами и векторами
Вектора и матрицы, построенные с помощью Numpy можно складывать, вычитать, умножать, транспонировать и умножать на число. Перечисленные операции используются в большинстве задач, более специфические функции, в рамках данной статьи, рассматриваться не будут.
Создадим две матрицы.
Сложение матриц
Вычитание матриц
Умножение матрицы на число
Умножение матриц
Транспонирование матриц
Видео:#9. Булевы операции и функции, значения inf и nan | NumPy урокиСкачать
… И другие полезные функции
Далее будет представлен список функций, их описание и пример использования, которые могут быть полезны, если о них знать)
np.ravel()
Функция np.ravel() используется для того, чтобы преобразовать матрицу в одномерный вектор.
Создадим двумерную матрицу размера 3х3 .
Применим функцию ravel() к этой матрице.
У ravel() есть параметр order , который отвечает за порядок построения одномерного массива, по умолчанию он равен ‘C’ , что означает – массив будет собираться из строк исходной матрицы.
Если указать order = ‘F ‘, то в качестве элементов для сборки будут выступать столбцы матрицы.
np.where()
Данная функция возвращает один из двух заданных элементов в зависимости от условия. Ее можно использовать для обработки численных данных.
В задачах машинного обучения эта функция хорошо подходит для реализации обработки данных с помощью пороговой функции.
np.meshgrid()
Функция meshgrid() позволят получить матрицу координат из координатных векторов. Если, например, у нас есть два одномерных вектора координат, то передав их в качестве аргументов в meshgrid() мы получим две матрицы, в которой элементы будут составлять пары, заполняя все пространство, определяемое этими векторами. Проще посмотреть это на примере.
Создадим два вектора
Построим матрицу координат с помощью meshgrid .
Посмотрите внимательно на матрицы xg и yg . Каждому элементу xg[i,j] соответствует свой элемент yg[i,j] . Можно визуализировать эти данные.
Для начала импортируем matplotlib (он должен быть установлен).
Последняя строка нужна, если вы работаете в Jupyter Notebook , чтобы графики рисовались “по месту”.
Теперь построим график
np.random.permutation()
Функция permutation() либо генерирует список заданной длины из натуральных чисел от нуля до указанного числа, либо перемешивает переданный ей в качестве аргумента массив.
Основное практическое применение эта функция находит в задачах машинного обучения, где довольно часто требуется перемешать выборку данных перед тем, как передавать ее в алгоритм.
Например у нас есть вектор с данными
Перемешаем эту выборку
Построим массив индексов для вектора arr , в котором позиции находятся в случайном порядке
Видео:#8. Базовые математические операции над массивами | NumPy урокиСкачать
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Библиотека Numpy. Использование boolean массива для доступа к ndarray >>>
Видео:#13. Транслирование массивов | NumPy урокиСкачать
Операции над векторами в numpy
Рассмотрим некоторые общие функции линейной алгебры и их применение на чистом Python и numpy. Все примеры — на Jupyter Notebook.
Списки в Python не являются векторами, по умолчанию над ними нельзя производить поэлементные операции.
В Python необходимо определять собственные функции, чтобы оперировать списками как векторами. Для сравнения: в numpy для аналогичных операций достаточно одной строки кода.
Сложение векторов
Но, конечно, в numpy это можно сделать с помощью оператора + на numpy-массивах или с помощью метода sum() .
Вычитание векторов
Скалярное умножение
Среднее значение вектора
Скалярное произведение
Сумма квадратов
Величина вектора
Расстояние между двумя векторами
Видео:Умножении вектора на число(скаляр) || Линейная алгебра для Data Science #numpy #datascience #pythonСкачать
На заметку
В ряде рассмотренных примеров используется 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-примеров и дополнительные пояснения.
📽️ Видео
#3. Функции автозаполнения, создания матриц и числовых диапазонов | NumPy урокиСкачать
#2. Основные типы данных. Создание массивов функцией array() | NumPy урокиСкачать
Machine Learning: Numpy урок 8. Векторные операции.Скачать