代码编织梦想

以最简洁的Python代码实现常用矩阵运算

2020-07-22 08:14

阅读数 49

本文是讲用Python实现矩阵的加法运算和乘法运算,写几层for循环,实现矩阵加法和乘法并不困难,但关键是要足够简洁,这个可让我费了不少脑子。先直接上代码吧。

#矩阵表示形式 M = [    [a1, a2, a3],    [a4, a5, a6],    [a7, a8, a9] ] #矩阵加法 def

madd(M1, M2):     if isinstance(M1, (tuple, list)) and isinstance(M2, (tuple,

list)):         return [[m+n for m,n in zip(i,j)] for i, j in zip(M1,M2)]#矩阵乘法

def multi(M1, M2):     if isinstance(M1, (float, int)) and isinstance(M2, (tuple

, list)):         return [[M1*i for i in j] for j in M2]     if isinstance(M1, (

tuple, list)) and isinstance(M2, (tuple, list)):         return [[sum(map(lambda

x: x[0]*x[1], zip(i,j)))                  for j in zip(*M2)] for i in M1]

加法和乘法实现都只用了一行代码就搞定了,注意,均没有做严格的输入参数合法性检查。乘法处理了常数乘矩阵和矩阵乘矩阵两种情况。

上面的实现只是用了一些小技巧,熟悉python的人应该很快能弄懂。主要用到了zip函数,该函数的功能就是将若干个list的元素一一对应起来,map函数相当于是一层for循环,即将某list里的元素依次执行某函数,得到一个新的list。特别注意zip(*M2),就这么简单就能取到矩阵的每一列元素。对,就是这些,对着代码好好琢磨琢磨吧

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_31597881/article/details/114941516

矩阵乘法的python实现-爱代码爱编程

本文经用Python基本语句和基本数据类型,不使用第三方数学计算来实现矩阵相乘 基本思路: 完成矩阵的输入矩阵相乘 矩阵相乘的流程:判断矩阵A与B的维度是否匹配,例如A为m行n列,则B为n行m列矩阵相乘的结果是一个新的矩

嵩天老师-python语言程序设计-python123配套练习测验题目汇总整理-爱代码爱编程

测验1:Python基本语法元素 知识点概要: 普遍认为Python语言诞生于1991年Python语言中的缩进在程序中长度统一且强制使用,只要统一即可,不一定是4个空格(尽管这是惯例)IPO模型指:Input Proc

c++实现矩阵乘法运算_C中的矩阵乘法-爱代码爱编程

c++实现矩阵乘法运算 Here is the program for matrix multiplication in C. 这是C语言中矩阵乘法的程序。 m and n are rows and columns of first matrix. m和n是第一矩阵的行和列。 p and q are rows and

python怎么让矩阵内所有元素自己平方_大手子养成计划(一)就特么你叫python啊...-爱代码爱编程

“ 编程环境已经搭好,下面就让我们认识认识python同学吧~” 不知道大家有没有想过,为什么在研究生阶段第一门编程课中,会使用python这门程序设计语言作为编程环境。为什么没有用java或者C语言?明明大部分人本科阶段就已经学过C语言了。 其中,很大一部分就是因为python的简洁性、易读性,在程序编写过程中更贴近于口语化表达。举

python 遍历矩阵_如何快速学会Python处理数据?(5000字走心总结)-爱代码爱编程

大家好,我是大师兄。 很多同学抱怨自己很想学好Python,但学了好久,书也买不少,视频课程也看了不少,但是总是学了一段时间,感觉还是没什么收获,碰到问题没思路,有思路写不出多少行代码,遇到报错时也不知道怎么处理。 从入门到放弃,这是很多学习python的同学常常挂在嘴边上的口头禅。今天我分享一些自己学习Python的心得,并用一个案例来说明pyt

python 遍历矩阵_python性能提高10倍的通用方法-爱代码爱编程

注:对于没有参加过培训,或者没有python、三角、矩阵基础的朋友,如果要完全理解文中代码,需先适当补充相应基础知识!        NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表要高效的多,支持大量的维度数组与矩阵运算,此外也针对数组运

python n个list如何组成矩阵_30个极简的python代码,让你更快掌握python(一)-爱代码爱编程

最近在用python的django做一个网站,时不时都会要对数据做一些转换或者对一些数据结构进行比较或者运算,但总是要上网去找资料,然后复制粘贴,时间长了,感觉整个项目的代码很凌乱,完全不是按照自己的思路来(虽然是按照自己的方式复制粘贴,哈哈哈!!!),所以在此记录一下,方便自己查看使用,也和大家分享一下经验。欢迎大家阅读指正!! 重复元素判定 如

python 矩阵运算 for循环_python 用列表做矩阵的乘法,循环内发生错误-爱代码爱编程

R = [[1.0, 2.0], [1.0, 1.0]] T = [[1.0, 1.0], [1.0, 1.0]] a = len(R) b = len(R[1]) c =len(T) d = len(T[1]) print(a,b,c,d) if b != c: print ("error") else : P = [[0]*a]

python循环矩阵实现_斐波那契数列与矩阵乘法的联系以及其python实现-爱代码爱编程

 斐波那契数列    即     1、1、2、3、5、8、13、21、34、.....以此类推,在很多面试题中,面试官都会让你手写斐波那契数列的实现。对于一些有编程经验的人来说,这很容易,他们可以很快写出类似以下代码: 设 n 为  大于0的正整数,求第n个斐波那契数(1为第一个,2为第二个...8为第五个) def feb(n

用Python实现简单的人脸识别,10分钟搞定!(附源码)-爱代码爱编程

前言 让我的电脑认识我,我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的。这里介绍的是准确性比较高的一种。 欲直接下载源代码文件,关注微信公众号:Python联盟,回复“人脸识别”