python怎么求转置矩阵,numpy向量转换矩阵
在本文的例子中,讨论了用Python实现的矩阵置换和矩阵乘法。分享仅供参考。如下。
矩阵置换
Wgdmg:用通常的思路deftranspose(m):
#初始化的矩阵
结果=[]
#在替换前获取行和列
row,col=shape(m)).
#首先循环列
forIinrange(列) :
#具有外部循环的容器
item=[]
在# column循环中循环行。
对于索引范围(世界其他地区) :
item.append(m[index][I]).
结果.追加(项目)
返回结果
思路:矩阵转置是指从行变为列。最后,在列变成行之前定义存储矩阵的容器,然后循环I列来定义存储数据的临时数组。在每一列的循环内,再循环第J行,将第M[j][i]个元素存入临时数组,完成每一列的循环,将临时数组存入最终数组,完成列的循环,最终数组就是矩阵的求逆。
用lmdyx:zip解压def defe(m ):
用zip直接分解成转置元组迭代器,然后强变换成list,存储在最终的list中。
return[list(row)for rowinzip)* m]
构思:
解压缩包后,它返回一个迭代器,将多个可重复的对象组合成一个元组数组。例如:my_zip=list(zip) (a),b),c),)1,2,3))
print(my_zip))、1)、b)、2)、c)、3 ) ]
在每个循环中,元组被强转换成列表,并包含在总列表中。
矩阵defmatrixmultiply(a (a,b):
获取# a的行数和列数。
A_row,A_col=shape(A)
获取#b的行数和列数
B_row,b_col=shape(b))).
#无法操作时的判断
if(a_col!=b_row(:
提高值错误
#最终矩阵
结果=[]
解包后的# zip是一个转置元组,被强制转换成一个列表,存储在结果中。
Bt=[list(row ) forrowinzip(*b ) ]
开始#产品操作
fora_indexinrange(a_row):
#用于记录新矩阵每一行的元素
rowItem=[]
forb_indexinrange(Len(Bt)):
# num是累积的。
num=0
forbrinrange(Len ) Bt[b_index]):
num=a [ a索引] [ br ] * Bt [ b索引] [ br ]
#增量完成后,将数据存储在新矩阵的行中
rowItem.append(数字)
result.append(rowitem)).
返回结果
说明:将矩阵A和矩阵B相乘,最后得到一个新的矩阵x,第一个思路是判断乘法是否可以做。前提是A列和B行是相同的。假设A是3行5列,B是5行2列。乘法的结果是B被3行2列代替,变成2行5列。叫BT。这样,如果A和BT都是5列,如果A *的每一行的第I个元素,BT的每一行的第I个元素,构成新矩阵X的新行和循环A的那一行加在一起,新矩阵X就慢慢加起来,循环结束后就得到新矩阵X。
对Python相关内容感兴趣的读者请参考本网精选文章,《Python数学运算技巧总结》,《Python数据结构与算法教程》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》,《Python入门与进阶经典教程》,0103010,0103
希望这篇文章能对大家的Python编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。