网站空间 .de,赣州市微语网络科技有限公司,编程软件免费下载,cloudflare cdn朋友们#xff0c;如需转载请标明出处#xff1a;https://blog.csdn.net/jiangjunshow
声明#xff1a;在人工智能技术教学期间#xff0c;不少学生向我提一些python相关的问题#xff0c;所以为了让同学们掌握更多扩展知识更好地理解AI技术#xff0c;我让助理负责分享…朋友们如需转载请标明出处https://blog.csdn.net/jiangjunshow
声明在人工智能技术教学期间不少学生向我提一些python相关的问题所以为了让同学们掌握更多扩展知识更好地理解AI技术我让助理负责分享这套python系列教程希望能帮到大家由于这套python教程不是由我所写所以不如我的AI技术教学风趣幽默学起来比较枯燥但它的知识点还是讲到位的了也值得阅读想要学习AI技术的同学可以点击跳转到我的教学网站。PS看不懂本篇文章的同学请先看前面的文章循序渐进每天学一点就不会觉得难了
使用Python编写矩阵也被称为多维数组的一个基本的方法就是使用嵌套的列表结构。例如如下代码使用嵌套列表的列表定义了两个3×3的矩阵。
M [[1,2,3],... [4,5,6],... [7,8,9]]N [[2,2,2],... [3,3,3],... [4,4,4]]我们能够只索引行也可以索引行中的列来访问某个元素。
M[1][4,5,6]M[1][2]6列表解析也是处理矩阵的强大工具它会自动为我们扫描行和列。虽然这种结构通过行来存储矩阵但是我们能够简单地通过对行进行迭代然后从所需要的列中提取出元素或者就像下面一样通过在行内的位置进行迭代。
[row[1] for row in M][2,5,8][M[row][1] for row in 0,1,2][2,5,8]下面提取了矩阵中对角线位置的元素。下面的表达式使用range来生成列表的偏移量之后使用相同的行和列来进行索引取出了M[0][0],之后是 M[1][1]这里我们假设矩阵有相同数目的行和列。
[M[i][i] for i in rangelenM][1,5,9]最后我们使用列表解析来混合多个矩阵。
[M[row][col] * N[row][col] for row in range3 for col in range3][2,4,6,12,15,18,28,32,36][[M[row][col] * N[row][col] for col in range3] for row in range3][[2,4,6],[12,15,18],[28,32,36]]最后一个表达式等同于如下的基于语句的代码。
res []for row in range3:... tmp []... for col in range3:... tmp.appendM[row][col] * N[row][col]... res.appendtmp...res[[2,4,6],[12,15,18],[28,32,36]]与这些语句相比列表解析只需要一行代码而且可能对于大型矩阵来说运行得更快。