- Векторы в Python
- Создание вектора
- Основные операции с вектором
- 1. Выполнение операции сложения в векторе
- 2. Выполнение вычитания двух векторов
- 3. Выполнение умножения двух векторов
- 4. Выполнение операции деления
- 5. Векторное точечное произведение
- Работа с векторами в Python с помощью NumPy
- Что такое вектор в Python?
- Создание вектора в Python
- Базовые операции вектора Python
- Сложение двух векторов
- Вычитание
- Умножение векторов
- Операция деления двух векторов
- Векторное точечное произведение
- Векторно-скалярное умножение
- Vector of pairs in python
- 2 Answers 2
Векторы в Python
В простом смысле вектор можно рассматривать, как одномерный массив. Что касается Python, вектор – это одномерный массив списков. Он занимает элементы таким же образом, как и список Python.
Давайте теперь разберемся с созданием вектора в Python.
Создание вектора
Модуль NumPy в Python используется для создания вектора. Мы используем метод numpy.array() для создания одномерного массива, то есть вектора.
Пример 1: горизонтальный вектор.
import numpy as np lst = [10,20,30,40,50] vctr = np.array(lst) vctr = np.array(lst) print("Vector created from a list:") print(vctr)
Vector created from a list: [10 20 30 40 50]
Пример 2: вертикальный вектор.
import numpy as np lst = [[2], [4], [6], [10]] vctr = np.array(lst) vctr = np.array(lst) print("Vector created from a list:") print(vctr)
Vector created from a list: [[ 2] [ 4] [ 6] [10]]
Основные операции с вектором
Создав вектор, давайте теперь выполним некоторые базовые операции с этими векторами!
Вот список основных операций, которые можно выполнять с вектором:
- сложение;
- вычитание;
- умножение;
- деление;
- скалярное произведение и т.д.
1. Выполнение операции сложения в векторе
Ниже мы выполнили операцию сложения векторов над векторами. Операция сложения будет выполняться element-wise manner, т.е. поэлементно, и, кроме того, результирующий вектор будет иметь такую же длину, что и два аддитивных вектора.
import numpy as np lst1 = [10,20,30,40,50] lst2 = [1,2,3,4,5] vctr1 = np.array(lst1) vctr2= np.array(lst2) print("Vector created from a list 1:") print(vctr1) print("Vector created from a list 2:") print(vctr2) vctr_add = vctr1+vctr2 print("Addition of two vectors: ",vctr_add)
Vector created from a list 1: [10 20 30 40 50] Vector created from a list 2: [1 2 3 4 5] Addition of two vectors: [11 22 33 44 55]
2. Выполнение вычитания двух векторов
Аналогичным образом, при вычитании также будет применяться поэлементный метод, и в дальнейшем элементы вектора 2 будут вычитаться из вектора 1.
Давайте посмотрим на его реализацию.
import numpy as np lst1 = [10,20,30,40,50] lst2 = [1,2,3,4,5] vctr1 = np.array(lst1) vctr2= np.array(lst2) print("Vector created from a list 1:") print(vctr1) print("Vector created from a list 2:") print(vctr2) vctr_sub = vctr1-vctr2 print("Subtraction of two vectors: ",vctr_sub)
Vector created from a list 1: [10 20 30 40 50] Vector created from a list 2: [1 2 3 4 5] Subtraction of two vectors: [ 9 18 27 36 45]
3. Выполнение умножения двух векторов
При умножении вектора элементы вектора 1 умножаются на элементы вектора 2, а вектор произведения имеет ту же длину, что и векторы умножения.
Попробуем представить себе операцию умножения:
x = [10,20] и y = [1,2] — два вектора. Таким образом, вектор произведения будет v [],
v [0] = x [0] * y [0] v [1] = x [1] * y [1]
Взгляните на приведенный ниже код:
import numpy as np lst1 = [10,20,30,40,50] lst2 = [1,2,3,4,5] vctr1 = np.array(lst1) vctr2= np.array(lst2) print("Vector created from a list 1:") print(vctr1) print("Vector created from a list 2:") print(vctr2) vctr_mul = vctr1*vctr2 print("Multiplication of two vectors: ",vctr_mul)
Vector created from a list 1: [10 20 30 40 50] Vector created from a list 2: [1 2 3 4 5] Multiplication of two vectors: [ 10 40 90 160 250]
4. Выполнение операции деления
При делении результирующий вектор является значениями частного после выполнения операции деления над двумя векторами.
Для лучшего понимания рассмотрим приведенный ниже пример.
x = [10,20] и y = [1,2] – два вектора. Таким образом, результирующий вектор v будет таким:
v [0] = x [0] / y [0] v [1] = x [1] / y [1].
Давайте теперь реализуем вышеуказанную концепцию.
import numpy as np lst1 = [10,20,30,40,50] lst2 = [10,20,30,40,50] vctr1 = np.array(lst1) vctr2= np.array(lst2) print("Vector created from a list 1:") print(vctr1) print("Vector created from a list 2:") print(vctr2) vctr_div = vctr1/vctr2 print("Division of two vectors: ",vctr_div)
Vector created from a list 1: [10 20 30 40 50] Vector created from a list 2: [10 20 30 40 50] Multiplication of two vectors: [ 1 1 1 1 1 ]
5. Векторное точечное произведение
В векторном скалярном произведении мы поэлементно производим суммирование произведения двух векторов.
вектор c = x. у = (х1 * у1 + х2 * у2)
import numpy as np lst1 = [10,20,30,40,50] lst2 = [1,1,1,1,1] vctr1 = np.array(lst1) vctr2= np.array(lst2) print("Vector created from a list 1:") print(vctr1) print("Vector created from a list 2:") print(vctr2) vctr_dot = vctr1.dot(vctr2) print("Dot product of two vectors: ",vctr_dot)
Vector created from a list 1: [10 20 30 40 50] Vector created from a list 2: [1 1 1 1 1] Dot product of two vectors: 150
Работа с векторами в Python с помощью NumPy
В этом уроке мы узнаем, как создать вектор с помощью библиотеки Numpy в Python. Мы также рассмотрим основные операции с векторами, такие как сложение, вычитание, деление и умножение двух векторов, векторное точечное произведение и векторное скалярное произведение.
Что такое вектор в Python?
Вектор известен как одномерный массив. Вектор в Python – это единственный одномерный массив списков, который ведет себя так же, как список Python. Согласно Google, вектор представляет направление, а также величину; особенно он определяет положение одной точки в пространстве относительно другой.
Векторы очень важны в машинном обучении, потому что у них есть величина, а также особенности направления. Давайте разберемся, как мы можем создать вектор на Python.
Создание вектора в Python
Модуль Python Numpy предоставляет метод numpy.array(), который создает одномерный массив, то есть вектор. Вектор может быть горизонтальным или вертикальным.
Вышеупомянутый метод принимает список в качестве аргумента и возвращает numpy.ndarray.
Давайте разберемся в следующих примерах.
Пример – 1: горизонтальный вектор
# Importing numpy import numpy as np # creating list list1 = [10, 20, 30, 40, 50] # Creating 1-D Horizontal Array vtr = np.array(list1) vtr = np.array(list1) print("We create a vector from a list:") print(vtr)
We create a vector from a list: [10 20 30 40 50]
Пример – 2: Вертикальный вектор
# Importing numpy import numpy as np # defining list list1 = [[12], [40], [6], [10]] # Creating 1-D Vertical Array vtr = np.array(list1) vtr = np.array(list1) print("We create a vector from a list:") print(vtr)
We create a vector from a list: [[12] [40] [ 6] [10]]
Базовые операции вектора Python
После создания вектора мы теперь будем выполнять арифметические операции над векторами.
Ниже приведен список основных операций, которые мы можем производить с векторами:
- сложение;
- вычитание;
- умножение;
- деление;
- точечное произведение;
- скалярные умножения.
Сложение двух векторов
В векторном сложении это происходит поэлементно, что означает, что сложение будет происходить поэлементно, а длина будет такой же, как у двух аддитивных векторов.
Давайте разберемся в следующем примере.
import numpy as np list1 = [10,20,30,40,50] list2 = [11,12,13,14,15] vtr1 = np.array(list1) vtr2= np.array(list2) print("We create vector from a list 1:") print(vtr1) print("We create vector from a list 2:") print(vtr2) vctr_add = vctr1+vctr2 print("Addition of two vectors: ",vtr_add)
We create vector from a list 1: [10 20 30 40 50] We create vector from a list 2: [11 12 13 14 15] Addition of two vectors: [21 32 43 54 65]
Вычитание
Вычитание векторов выполняется так же, как и сложение, оно следует поэлементному подходу, и элементы вектора 2 будут вычтены из вектора 1. Давайте разберемся в следующем примере.
import numpy as np list1 = [10,20,30,40,50] list2 = [5,2,4,3,1] vtr1 = np.array(list1) vtr2= np.array(list2) print("We create vector from a list 1:") print(vtr1) print("We create a vector from a list 2:") print(vtr2) vtr_sub = vtr1-vtr2 print("Subtraction of two vectors: ",vtr_sub)
We create vector from a list 1: [10 20 30 40 50] We create vector from a list 2: [5 2 4 3 1] Subtraction of two vectors: [5 18 26 37 49]
Умножение векторов
Элементы вектора 1 умножаются на вектор 2 и возвращают векторы той же длины, что и векторы умножения.
import numpy as np list1 = [10,20,30,40,50] list2 = [5,2,4,3,1] vtr1 = np.array(list1) vtr2= np.array(list2) print("We create vector from a list 1:") print(vtr1) print("We create a vector from a list 2:") print(vtr2) vtr_mul = vtr1*vtr2 print("Multiplication of two vectors: ",vtr_mul)
We create vector from a list 1: [10 20 30 40 50] We create vector from a list 2: [5 2 4 3 1] Multiplication of two vectors: [ 50 40 120 120 50]
Умножение производится следующим образом.
vct[0] = x[0] * y[0] vct[1] = x[1] * y[1]
Первый элемент вектора 1 умножается на первый элемент соответствующего вектора 2 и так далее.
Операция деления двух векторов
В операции деления результирующий вектор содержит значение частного, полученное при делении двух элементов вектора.
Давайте разберемся в следующем примере.
import numpy as np list1 = [10,20,30,40,50] list2 = [5,2,4,3,1] vtr1 = np.array(list1) vtr2= np.array(list2) print("We create vector from a list 1:") print(vtr1) print("We create a vector from a list 2:") print(vtr2) vtr_div = vtr1/vtr2 print("Division of two vectors: ",vtr_div)
We create vector from a list 1: [10 20 30 40 50] We create vector from a list 2: [5 2 4 3 1] Division of two vectors: [ 2. 10. 7.5 13.33333333 50. ]
Как видно из вышеприведенного вывода, операция деления вернула частное значение элементов.
Векторное точечное произведение
Векторное скалярное произведение выполняется между двумя последовательными векторами одинаковой длины и возвращает единичное скалярное произведение. Мы будем использовать метод .dot() для выполнения скалярного произведения. Это произойдет, как показано ниже.
vector c = x . y =(x1 * y1 + x2 * y2)
Давайте разберемся в следующем примере.
import numpy as np list1 = [10,20,30,40,50] list2 = [5,2,4,3,1] vtr1 = np.array(list1) vtr2= np.array(list2) print("We create vector from a list 1:") print(vtr1) print("We create a vector from a list 2:") print(vtr2) vtr_product = vtr1.dot(vtr2) print("Dot product of two vectors: ",vtr_product)
We create vector from a list 1: [10 20 30 40 50] We create vector from a list 2: [5 2 4 3 1] Dot product of two vectors: 380
Векторно-скалярное умножение
В операции скалярного умножения; мы умножаем скаляр на каждую компоненту вектора. Давайте разберемся в следующем примере.
import numpy as np list1 = [10,20,30,40,50] vtr1 = np.array(list1) scalar_value = 5 print("We create vector from a list 1:") print(vtr1) # printing scalar value print("Scalar Value : " + str(scalar_value)) vtr_scalar = vtr1 * scalar_value print("Multiplication of two vectors: ",vtr_scalar)
We create vector from a list 1: [10 20 30 40 50] Scalar Value : 5 Multiplication of two vectors: [ 50 100 150 200 250]
В приведенном выше коде скалярное значение умножается на каждый элемент вектора в порядке s * v =(s * v1, s * v2, s * v3).
Vector of pairs in python
I need to store start and end indexes of certain substrings. I need to do this in python. What is the python equivalent for c++ vector of pairs?
visit here link . look for lists and tuples . please cultivate a habit of finding answers by yourself first . search for documentations if you are learning a new programming language
No, i am unable to find python equivalent of cpp stl vector of pairs. Please read the question then answer.
A list of tuples. A pair is a tuple with 2 elements (c++ and haskell both agree this). Since you dont want the elements to be mutable, tuple is perfect choice.
2 Answers 2
I would suggest storing it in a dictionary (Hashmap)
input = ['str1', 'str2', 'str3'] stored_as = , 'str2': , 'str3': >
This gives you a better representation. If you are tight on space, then you can store it as either of the following:
If you use slice objects, you can use them to select the substrings directly:
In [924]: al = [slice(0,3), slice(2,5), slice(5,10)] In [925]: astr = 'this is a long enough string' In [926]: [astr[s] for s in al] Out[926]: ['thi', 'is ', 'is a ']
In [927]: at = [(0,3), (2,5), (5,10)] In [928]: [astr[s[0]:s[1]] for s in at] Out[928]: ['thi', 'is ', 'is a ']
They could even be named tuples. or a list of lists.
We can even hide that slice iteration with an itemgetter :
In [933]: import operator In [934]: f=operator.itemgetter(*al) In [935]: f Out[935]: operator.itemgetter(slice(0, 3, None), slice(2, 5, None), slice(5, 10, None)) In [936]: f(astr) Out[936]: ('thi', 'is ', 'is a ')
This list of slices could also contain scalar indexes:
In [945]: al = [0, slice(5,7), slice(10,14), -1] In [946]: operator.itemgetter(*al)(astr) Out[946]: ('t', 'is', 'long', 'g')