python 按位置關系輸出矩陣元素


描述:依次輸出矩陣中最近鄰的元素

例如:輸入:

[[1, 2, 3]

  [4, 5, 6]

   [7, 8, 9]]

輸出:

[[ 1.  2.  4.  5.  3.  6.  7.  8.  9.]
 [ 2.  1.  3.  4.  5.  6.  7.  8.  9.]
 [ 3.  2.  5.  6.  1.  4.  7.  8.  9.]
 [ 4.  1.  2.  5.  7.  8.  3.  6.  9.]
 [ 5.  1.  2.  3.  4.  6.  7.  8.  9.]

思想:采用坐標進行判斷,距離中心點一跳的元素坐標與中心點的坐標的平方差小於2,依次類推

import numpy as np
#zhaodaozaizhidingfanweineideshuzi
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=a[0][0]
c,d=a.shape
e=np.zeros(shape=[c*d,c*d])
# print (d)
k=0

def sround1(distance,m,n,wend,hend):
    e[m*3+n][0]=a[m][n]
    k=1
    for d in range(distance):
        for i in range(wend):
            for j in range(hend):
                if np.square(i-m)+np.square(j-n)<=2*np.square(d) and np.square(i-m)+np.square(j-n)>2*np.square(d-1):
                    e[m*3+n][k]=a[i][j]
                    k=k+1
                    print (e)


def start(c, d):
    d=max(c,d)
    for i in range(c):
        for j in range(d):
            sround1(d,i,j,c,d)
    print (e)

if __name__=='__main__':
    start(3,3)

 [ 6.  2.  3.  5.  8.  9.  1.  4.  7.]
 [ 7.  4.  5.  8.  1.  2.  3.  6.  9.]
 [ 8.  4.  5.  6.  7.  9.  1.  2.  3.]
 [ 9.  5.  6.  8.  1.  2.  3.  4.  7.]]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM