介绍
这期内容当中小编将会给大家带来有关使用python怎么遍历方阵的对角线,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>任务描述强>
对一个方阵矩阵,实现平行于主对角线方向的对角线元素遍历。
<强>从矩阵索引入手:强>
[[, 1, 2, 3, 4, 5] ,(6,7,8,9,10) ,(十一,十二,十三,十四,十五) ,[16,17,18,19,20) ,(21日,22日,23日,24日,25日]]
<>强上三角的索引遍历:强>
0, 0 1,1 2,2 3,3 4,4 0,1 1,2 2,3 3,4 0,2 1,3 2,4 0,3 1,4 0,4
<强>下三角的索引遍历:强>
1, 0 2,1 3,2 4,3 2,0 3,1 4,2 3,0 4,1 4,0
<强>代码强>
import numpy as np 时间=A np.arange (25) + 1 时间=A np.mat (A.reshape ([5,, 5])) print () “““ [[,1,2,3,4,5] ,(6,7,8,9,10) ,(十一,十二,十三,十四,十五) ,[16,17,18,19,20) ,(21日,22日,23日,24日,25日]] “““ 时间=Num_element A.shape [0] c =, int ((Num_element-1)/2) #,打印(c) 时间=R np.zeros_like (A) #,打印(右) for j 拷贝范围(Num_element): ,print () ,小姐:=0 ,#打印(i, j) ,while np.max ((i, j)) & lt; Num_element: ,打印(i, j) ,if np.abs (i j) % 2==0: ,R (i, j),=, (c-int ((j-i)/2), c + int ((j-i)/2)] ,其他的: ,R (i, j),=, ([c-int ((j-i-1)/2), c + int ((j-i + 1)/2)] + [c-int ((j-i + 1)/2), c + int ((j-i-1)/2)])/2 我=+ 1 j=+ 1 #,打印(右) for k 拷贝范围(1,Num_element): ,print () ,小姐:=0 ,#打印(i, j) ,while np.max ([k,我])& lt; Num_element: ,打印(k,我) ,if np.abs (k-i) % 2==0: (k,我),R,=, (c-int ((i (k)/2), c + int ((i (k)/2)] ,其他的: (k,我),R,=, ([c-int ((i-k-1)/2), c + int ((i (k + 1)/2)] + [c-int ((i (k + 1)/2), c + int ((i-k-1)/2)])/2 k=k + 1 我=+ 1 打印(R)
上述代码中对于每条对角线的所有元素执行相同的赋值操作。
<强>考虑将其中重复的部分封装成函数:强>
def diag_opreation (Num_element, k,,我,,,,):=,int, c  ((Num_element-1)/2) ,while np.max ([k,我])& lt; Num_element: ,打印(k,我) ,if np.abs (k-i) % 2==0: (k,我),R,=, (c-int ((i (k)/2), c + int ((i (k)/2)] ,其他的: (k,我),R,=, ([c-int ((i-k-1)/2), c + int ((i (k + 1)/2)] + [c-int ((i (k + 1)/2), c + int ((i-k-1)/2)])/2 , k=k + 1 我=+ 1 以前,return R ><强>则代码变为:强>
for j 拷贝范围(Num_element): ,print () ,小姐:=0 ,#打印(i, j)=,,R  diag_opreation (i, j, Num_element,, R,,) #,打印(右) for k 拷贝范围(1,Num_element): ,print () ,小姐:=0 ,#打印(i, j)=,,R  diag_opreation (k,,我,,Num_element,,,,) 打印(R)<强>输出结果为:强>
[[13岁,11岁,9,7,5] ,[15,13岁,11岁,9,7] ,(17岁,15岁,13岁,11岁,9] ,[19日,17日,15日,13日,11) ,(21日,19日,17日,15日,13]]上述就是小编为大家分享的使用python怎么遍历方阵的对角线了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
使用python怎么遍历方阵的对角线