python 按位置關係輸出矩陣元素
阿新 • • 發佈:2021-01-01
描述:依次輸出矩陣中最近鄰的元素
例如:輸入:
[[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.]]