Аналог вектора в питоне

Векторы в 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') 

Источник

Читайте также:  Python форматирование телефонных номеров
Оцените статью