首页 > 编程知识 正文

numpy矩阵乘法,python矩阵转置numpy

时间:2023-05-06 03:39:52 阅读:149395 作者:1259

在本论文的例子中,论述了Python实现的矩阵置换和矩阵乘法。 共享仅供参考。 具体如下。

矩阵置换

wgdmg :使用通常的想法deftranspose(m ) :

#初始化后的矩阵

result=[]

#获取替换前的行和列

row,col=shape(m ) )。

#首先循环列

forIinrange(col ) :

#外层循环的容器

item=[]

在#列循环内部进行行循环

forindexinrange(row ) :

item.append(m[index][I] )。

result.append(item )

返回结果

思路:矩阵转置是指由行变列。 在列成为行之前最终定义存储矩阵的容器,然后循环I列,定义存储数据的临时数组。 在各列的循环内部,再次循环j行,将第M[j][i]个要素存储在一个临时数组中,各列的循环完成,将临时数组存储在最终数组中,列的循环完成,最终数组为矩阵的倒置

用lmdyx:zip解包deftranspose(m ) :

直接使用zip分解为转置的元组反复器,再强烈地变换为list并收纳到最终的list中

return[list(row ) forrowinzip ) *m]

构想:

解包zip后,返回将多个可重复对象组成一个元组数组的迭代器。 示例: my_zip=list(zip ) (a )、b )、c )、) 1、2、3 ) )

print(my_zip ) )、1 )、b )、2 )、c )、3 ) ]

在每个循环中将元组强烈转换为list,并容纳在总list中

矩阵乘法defmatrixmultiply(a,b ) :

获取#a的行数和列数

A_row,A_col=shape(A )

获取#b的行数和列数

B_row,b_col=shape(b ) ) )。

#无法运算时的判断

if(a_col!=b_row(:

raise ValueError

#最终矩阵

result=[]

# zip解包后是转置的元组,强制变换为list,存储在result中

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 _ index ] [ br ] * Bt [ b _ index ] [ br ]

#增量完成后,将数据存储在新矩阵的行中

rowItem.append(num )

result.append(rowitem ) )。

返回结果

说明:将a矩阵和b矩阵相乘,最终得到新的矩阵x。 想法首先是判断是否能做乘法。 前提条件是a列和b行相同。 假设a是3行5列,b是5行2列,乘法运算的结果是用3行2列置换b,变成2行5列。 这叫做BT。 这样,如果a和BT都是5列的话,将a各行的第I个要素* BT各行的第I个要素、构成新矩阵x的新行、循环a的行共计3行相加的话,新矩阵x就会慢慢追加新行,循环结束后得到新的矩阵x

对Python相关内容感兴趣的读者请参考本网站的专题文章,《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、0103010、0103010

希望本文能对大家的Python编程有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。