Python基础教程之数组类型 学习之数组类型⼀: Numpy 中的向量与矩阵: 1. 创建 : 向量、矩阵均由 array 函数创建,区别在于向量是 v=array( [ 逗号分隔的元素 ] ) , 矩阵是 M=array( [[ ]] ) 注意矩阵是双⽅括号 向量可以执⾏基本的线性代数运算( 运算是基于元素的运算 ),例如标量乘法 / 除法、线性组合、范数、标量积等。 2.访问数组项 : 向量索引与切⽚类似于字符串与列表 通过索引访问矩阵(数组项),需要两个索引来访问,这些索引都在⼀对⽅栝号⾥。 例如: M[2:4,1:4] 表⽰⾏与列的切⽚ ⼀些切⽚原则: 矩阵 [index,index] 得到维数为 0 的标量 矩阵 [ 索引,切⽚ ] 或者 [ 切⽚,索引 ] 得到维数为 1 的向量 矩阵 [ 切⽚,切⽚ ] 得到维数为 2 的矩阵 使⽤切⽚修改(替换)矩阵中的⼀个元素,⼀整⾏,整个⼦矩阵。 3.数组构造函数 : ---- ⽤于⼀些构造数组的命令⽣成特殊的矩阵。 v=array([3.,5.,8.]) I=diag(v,0) #diag(v,k) ⽣成的结果是来⾃向量 V 的 Python中的数组类型主要由Numpy库提供,Numpy是Python科学计算的核心库,它提供了高效的数据结构和操作,尤其在处理多维数据时。在Numpy中,向量和矩阵都是通过array函数创建的,向量是单维数组,而矩阵是二维数组。 **创建向量和矩阵** 创建向量时,我们使用一个单括号内的逗号分隔元素,如`v=array([1, 2, 3])`。矩阵则需要两个嵌套的括号,例如`M=array([[1, 2], [3, 4]])`。 **向量和矩阵的线性代数运算** 向量可以执行基本的线性代数运算,包括标量乘法/除法、线性组合、范数(如欧几里得范数)和标量积。这些运算都是基于元素进行的,这意味着每个元素都会独立地进行运算。 **访问数组项** 访问向量中的元素与访问列表类似,使用索引。对于矩阵,需要两个索引分别指定行和列。切片操作如`M[2:4,1:4]`用于获取子矩阵。遵循以下切片原则: - 矩阵[index,index]得到一个标量。 - 矩阵[index, slice]或[slice, index]得到一个向量。 - 矩阵[slice, slice]得到一个矩阵。 **数组构造函数** Numpy提供了一些构造特殊矩阵的命令,例如: 1. `diag(v, k)`:从向量`v`构建一个对角矩阵,其中k表示对角线的位置,k=0表示主对角线。 2. `zeros((m, n))`:创建一个m行n列全零的矩阵。 3. `ones((m, n))`:创建一个m行n列全一的矩阵。 4. `random.rand(m, n)`:创建一个m行n列,元素取自(0,1)均匀分布的随机矩阵。 5. `arange(n)`:生成一个包含前n个整数的向量。 6. `linspace(a, b, n)`:生成n个等差分布在a和b之间的点组成的一个向量。 7. `identity(n)`:生成一个n阶的单位矩阵。 **数组形状的访问和修改** `reshape()`函数允许我们在不复制数据的情况下改变数组的视图,提供一个新的形状。例如,`v.reshape(2, 3)`将一个一维数组转换为二维矩阵。当改变`reshape()`后的数组元素时,原始数组也会相应改变,因为它们共享相同的数据。 **转置** 矩阵的转置使用`.T`属性,例如`A.T`。矩阵转置会交换其行和列。向量的转置返回相同的向量,因为向量本身就是一个一维数组。 以上是Python基础教程中关于Numpy数组类型,包括向量和矩阵的创建、操作、构造以及形状变换的基本知识。掌握这些概念和方法是进行数值计算和数据分析的基础。通过深入学习和实践,你可以更好地利用Numpy进行复杂的数学运算和数据处理。
- 粉丝: 110
- 资源: 9354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助