<强>需求:强>
<强>原矩阵强>
[(1 2 3) (4 5 6) [7 8 9]]
在原矩阵元素之间填充元素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。]]
先求出扩充矩阵的维度,再按照每一行每一列遍历,根据元素的索引规律依次赋值,最终实现新的扩充矩阵。这个思路实现如下:
进口numpy np def PadMat (Ndim垫): 额=Bcol=2 * Ndim-1 B=np。0([额头,Bcol]) 的行范围(眉毛): 如果行% 2==0: 上校的范围(Bcol): 如果坳% 2==0: pos_c=int (col/2) pos_r=int(行/2) 坳#打印(行) B[行,坳]=垫(pos_r, pos_c) 其他: B[行,坳]=0 返回B #=np.arange (9) + 1 #=V厮?[3])=np.arange (16) + 1 一个=V厮?(4,4)) #打印(A.shape [0]) N=持续地=埃珂叫牌法=A.shape [0] NewMat=PadMat (Ndim=N,垫=一个) print () 打印(NewMat) >之前
这个思路很直接,但是循环套循环是一个很笨的办法,而且遍历也很慢。不知道网友有什么好的思路吗?
以上这篇python实现矩阵填充0的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
python实现矩阵填充0的例子