Python向量操作完全指南:从基础到高级应用

大家好!今天我们将学习一个在Python中被忽略的话题,即Python中的向量。让我们开始吧!


首先,什么是向量?

一个向量可以简单地被视为单维数组。在Python中,向量是一个由列表组成的一维数组。它与Python列表类似地占据元素的位置。

让我们现在来了解Python中向量的创建过程。


在Python中创建一个向量

Python NumPy模块用于创建向量。我们使用numpy.array()方法创建一维数组,即向量。

numpy.array(list)

例子1:水平向量

import numpy as np 

lst = [10,20,30,40,50] 

vctr = np.array(lst) 

print("从列表创建的向量:") 
print(vctr) 

输出:

从列表创建的向量:
[10 20 30 40 50]

例子2:垂直向量

import numpy as np 

lst = [[2], 
        [4], 
        [6],
          [10]]  

vctr = np.array(lst) 

print("从列表创建的向量:") 
print(vctr) 

输出:

从列表创建的向量:
[[ 2]
 [ 4]
 [ 6]
 [10]]

对Python向量进行基本操作

创建了一个向量之后,让我们现在来进行一些基本操作吧!

这是一个可以在向量上执行的基本操作列表:

  • 加法
  • 减法
  • 乘法
  • 除法
  • 点积等

让我们开始吧!


对Python向量进行加法运算

这是文章《Python中的向量 – 一个快速介绍!》的第2部分(共6部分)。

1. 向量加法运算

下面,我们对向量进行矢量加法运算。

加法操作将以逐元素的方式进行,即逐个元素进行相加,并且最终结果向量的长度与两个加法向量相同。

语法:

vector + vector

示例代码:

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("从列表1创建的向量:") 
print(vctr1) 
print("从列表2创建的向量:") 
print(vctr2) 

vctr_add = vctr1+vctr2
print("两个向量相加的结果:",vctr_add)

输出结果:

从列表1创建的向量:
[10 20 30 40 50]
从列表2创建的向量:
[1 2 3 4 5]
两个向量相加的结果:[11 22 33 44 55]

2. 进行两个向量的减法运算

在相似的方式下,向量减法也是按照逐个元素的方式进行的,即从向量1的对应元素中减去向量2的元素。

让我们来看看它的实现吧!

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("从列表1创建的向量:") 
print(vctr1) 
print("从列表2创建的向量:") 
print(vctr2) 

vctr_sub = vctr1-vctr2
print("两个向量的减法结果:",vctr_sub)

输出结果:

从列表1创建的向量:
[10 20 30 40 50]
从列表2创建的向量:
[1 2 3 4 5]
两个向量的减法结果:[ 9 18 27 36 45]

3. 进行两个向量的乘法运算

4. 向量乘法运算

这是文章《Python中的向量 – 一个快速介绍!》的第4部分(共6部分)。

在向量乘法中,第一个向量的元素与第二个向量的对应元素相乘,得到的乘积向量长度与原始向量相同。

让我们尝试将乘法运算可视化:

假设 x = [10,20] 和 y = [1,2] 是两个向量。那么,乘积向量将为 v[]。

v[0] = x[0] * y[0]
v[1] = x[1] * y[1]

也就是:
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("从列表1创建的向量:")
print(vctr1)
print("从列表2创建的向量:")
print(vctr2)

vctr_mul = vctr1*vctr2
print("两个向量相乘的结果: ",vctr_mul)

输出结果:

从列表1创建的向量:
[10 20 30 40 50]
从列表2创建的向量:
[1 2 3 4 5]
两个向量相乘的结果: [ 10 40 90 160 250]

5. 向量除法运算

在向量除法中,结果向量是对两个向量进行除法运算后得到的商值。

为了更好地理解,考虑以下示例。

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("从列表1创建的向量:") 
print(vctr1) 
print("从列表2创建的向量:") 
print(vctr2) 

vctr_div = vctr1/vctr2
print("两个向量的除法:",vctr_div)

输出:

从列表1创建的向量:
[10 20 30 40 50]
从列表2创建的向量:
[10 20 30 40 50]
两个向量的除法:[ 1 1 1 1 1 ]

5. 向量点积

在向量点乘中,我们以逐个元素的方式进行两个向量的乘积求和。

让我们来看看下面的内容。

向量 c = x 与 y 的点积 = (x1 * y1 + x2 * y2)

例子:

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("从列表1创建的向量:") 
print(vctr1) 
print("从列表2创建的向量:") 
print(vctr2) 

vctr_dot = vctr1.dot(vctr2)
print("两个向量的点积:",vctr_dot)

输出:

从列表1创建的向量:
[10 20 30 40 50]
从列表2创建的向量:
[1 1 1 1 1]
两个向量的点积:150

结论

通过本系列教程,我们已经完成了Python中向量的学习。

为了更深入地理解向量,建议你尝试创建一个向量并进行上述操作,然后在评论区分享你的理解!

如果在学习过程中遇到任何问题,欢迎在下方留言。想了解更多Python相关的教程,请持续关注我们的更新。

祝学习愉快!

bannerAds