大家好,我是IT分享者,我叫皮皮。今天我将向您介绍矩阵和NumPy数组。1.什么是矩阵?使用嵌套列表和NumPy包的Python矩阵。矩阵是一种二维数据结构,其中数字按行和列排列。二、Python矩阵1、列表被看作是一个矩阵Python没有内置类型的矩阵。然而,列表的列表可以被认为是矩阵。示例:A=[[1,4,5],[-5,8,9]]这个列表列表可以被认为是一个2行3列的矩阵。如图:2.嵌套列表的使用方法。A=[[1,4,5,12],[-5,8,9,0],[-6,7,11,19]]print("A=",A)print("A[1]=",A[1])#第二行print("A[1][2]=",A[1][2])#第二行第三个元素print("A[0][-1]=",A[0][-1])#第一行最后一个元素column=[];#空listforrowinA:column.append(row[2])print("3rdcolumn=",column)程序运行时,输出为:3.NumPy数组1.NumPy是什么?NumPy是一个用于科学计算的软件包,它支持强大的N维数组对象。在使用NumPy之前,需要先安装它。2.如何安装NumPy?如果使用Windows,请使用PyCharm安装NumPy。NumPy附带了一些与数据科学和机器学习相关的其他软件包。现在你已经成功安装了NumPy,你可以导入并使用它了。NumPy提供数字的多维数组(实际上是一个对象)。例子:importnumpyasnpa=np.array([1,2,3])print(a)#output:[1,2,3]print(type(a))#output:NumPy数组类称为ndarray。注意:NumPy的数组类称为ndarray。3.如何创建NumPy数组?有多种创建NumPy数组的方法。3.1整数、浮点数和复数数组importnumpyasnpA=np.array([[1,2,3],[3,4,5]])print(A)A=np.array([[1.1,2,3],[3,4,5]])#floatarrayprint(A)A=np.array([[1,2,3],[3,4,5]],dtype=complex)#complexarrayprint(一)运行效果:3.2arrayofzerosandonesimportnumpyasnpzeors_array=np.zeros((2,3))print(zeors_array)ones_array=np.ones((1,5),dtype=np.int32)//dtypeprint(ones_array)#Output:[[11111]]这里指定的dtype是32位(4字节)。因此,数组可以从到取值。-2-312-31-13。使用arange()和shape()importnumpyasnpA=np.arange(4)print('A=',A)B=np.arange(12).reshape(2,6)print('B=',B)4.矩阵运算两个矩阵相加,两个矩阵相乘,矩阵转置。在编写这些程序之前,使用的是嵌套列表。让我们看看如何使用NumPy数组完成相同的任务。两个矩阵的加法使用+运算符将两个NumPy矩阵的相应元素相加。importnumpyasnpA=np.array([[2,4],[5,-6]])B=np.array([[9,-3],[3,6]])C=A+B#Elementsmart加法print(C)两个矩阵的乘法要将两个矩阵相乘,请使用dot()方法。注意:对于数组乘法(两个数组对应元素的乘法),不是矩阵乘法。importnumpyasnpA=np.array([[3,6,7],[5,-3,0]])B=np.array([[1,1],[2,1],[3,-3]])C=A.dot(B)print(C)matrixtranspose使用numpy.transpose计算矩阵的转置。importnumpyasnpA=np.array([[1,1],[2,1],[3,-3]])print(A.transpose())注意:NumPy使任务更容易。五、案例1.访问矩阵元素与列表类似,您可以使用索引来访问矩阵元素。让我们从一维NumPy数组开始。importnumpyasnpA=np.array([2,4,6,8,10])print("A[0]=",A[0])#Firstelementprint("A[2]=",A[2])#Thirdelementprint("A[-1]=",A[-1])#Lastelement运行程序时,输出为:现在,让我们看看如何访问二维数组(基本上是矩阵)的元素。importnumpyasnpA=np.array([[1,4,5,12],[-5,8,9,0],[-6,7,11,19]])#Firtestelementoffirstrowprint("A[0][0]=",A[0][0])#Thirdelementofsecondrowprint("A[1][2]=",A[1][2])#Lastelementoflastrowprint("A[-1][-1]=",A[-1][-1])运行程序时,输出将是:2.访问矩阵的行importnumpyasnpA=np.array([[1,4,5,12],[-5,8,9,0],[-6,7,11,19]])print("A[0]=",A[0])#FirstRowprint("A[2]=",A[2])#ThirdRowprint("A[-1]=",A[-1])#LastRow(3rdrowinthiscase)运行程序时,输出将是:3.访问矩阵的列importnumpyasnpA=np.array([[1,4,5,12],[-5,8,9,0],[-6,7,11,19]])print("A[:,0]=",A[:,0])#FirstColumnprint("A[:,3]=",A[:,3])#FourthColumnprint("A[:,-1]=",A[:,-1])#LastColumn(4thcolumninthiscase)运行程序时,输出将是:注意:使用NumPy(而不是嵌套列表)使用矩阵更容易,而且它甚至没有涵盖基础知识。建议详细研究NumPy包,尤其是在尝试使用Python进行数据科学/分析时。6.小结本文基于Python基础,介绍矩阵和NumPy数组,重点介绍NumPy数组,如何安装NumPy模块,如何创建NumPy数组两种方式。通过案例的分析、代码的演示、运行效果图的展示,以及Python语言的使用,让读者更好的理解。读者可根据文章内容自行体会。有的时候看别人的实现很简单,但是到了自己实现的时候,总会出现各种各样的问题。不要好高骛远,要努力了解得更深。代码很简单,希望对大家学习有所帮助。