1. 程式人生 > 其它 >python 按位置關係輸出矩陣元素

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

技術標籤:程式語言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,依次類推

'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
import numpy as np

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.]]