如何使用NumPy在Python中创建向量
在本教程中,我们将学习如何使用NumPy库创建向量。我们还将探索向量的基本操作,如两个向量的加法、减法、除法、乘法、向量点积和向量标量积。
什么是向量
向量被称为单维度数组。在Python中,向量是一个单一的一维列表数组,行为与Python列表相同。根据Google的说法,向量代表方向和大小,特别是它确定一个点在空间中相对于另一个点的位置。
向量在机器学习中非常重要,因为它们具有大小和方向特征。让我们了解如何在Python中创建向量。
在Python中创建向量
Python的NumPy模块提供了一个方法numpy.array(),它创建一个一维数组,即向量。向量可以是水平的或垂直的。
语法:
np.array(list)
上述方法接受一个列表作为参数并返回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向量的基本操作
创建向量后,我们将对向量进行算术运算。
下面是我们可以在向量中执行的基本操作的列表。
- 算术运算
- 减法
- 乘法
- 除法
- 点积
- 标量乘法
两个向量的加法
向量加法以逐元素的方式进行,这意味着每个元素都会相加,长度与两个加法向量的长度相同。
语法:
vector + vector
让我们来看下面的示例。
示例
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) 的方式与向量中的每个元素相乘。