python 实现矩阵填充0的例子
需求:
原矩阵
[[123] [456] [789]]
在原矩阵元素之间填充元素0,得到
[[1.0.2.0.3.] [0.0.0.0.0.] [4.0.5.0.6.] [0.0.0.0.0.] [7.0.8.0.9.]]
思路:
先求出扩充矩阵的维度,再按照每一行每一列遍历,根据元素的索引规律依次赋值,最终实现新的扩充矩阵。这个思路实现如下:
importnumpyasnp defPadMat(Ndim,Mat): Brow=Bcol=2*Ndim-1 B=np.zeros([Brow,Bcol]) forrowinrange(Brow): ifrow%2==0: forcolinrange(Bcol): ifcol%2==0: pos_c=int(col/2) pos_r=int(row/2) #print(row,col) B[row,col]=Mat[pos_r,pos_c] else: B[row,col]=0 returnB #A=np.arange(9)+1 #A=A.reshape([3,3]) A=np.arange(16)+1 A=A.reshape([4,4]) #print(A.shape[0]) N=Arow=Acol=A.shape[0] NewMat=PadMat(Ndim=N,Mat=A) print(A) print(NewMat)
总结:
这个思路很直接,但是循环套循环是一个很笨的办法,而且遍历也很慢。不知道网友有什么好的思路吗?
以上这篇python实现矩阵填充0的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。