亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python 實現方陣的對角線遍歷示例

 更新時間:2019年11月29日 09:15:56   作者:icaoys  
今天小編就為大家分享一篇python 實現方陣的對角線遍歷示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

任務描述

對一個方陣矩陣,實現平行于主對角線方向的對角線元素遍歷。

從矩陣索引入手:

[[ 1 2 3 4 5]
 [ 6 7 8 9 10]
 [11 12 13 14 15]
 [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(A)

"""
[[ 1 2 3 4 5]
 [ 6 7 8 9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]
 [21 22 23 24 25]]
"""

Num_element = A.shape[0]
c = int((Num_element-1)/2)
# print(c)


R = np.zeros_like(A)
# print(R)

for j in range(Num_element):
 print()
 i = 0
 # print(i, j)
 while np.max([i, j])<Num_element:
 print(i, j)
 if np.abs(i-j)%2==0:
 R[i, j] = A[c-int((j-i)/2), c+int((j-i)/2)]
 else:
 R[i, j] = (A[c-int((j-i-1)/2), c+int((j-i+1)/2)]+A[c-int((j-i+1)/2), c+int((j-i-1)/2)])/2

 i=i+1
 j=j+1

# print(R)

for k in range(1, Num_element):
 print()
 i = 0
 # print(i, j)
 while np.max([k, i])<Num_element:
 print(k, i)
 if np.abs(k-i)%2==0:
 R[k, i] = A[c-int((i-k)/2), c+int((i-k)/2)]
 else:
 R[k, i] = (A[c-int((i-k-1)/2), c+int((i-k+1)/2)]+A[c-int((i-k+1)/2), c+int((i-k-1)/2)])/2

 k=k+1
 i=i+1

print(R)

上述代碼中對于每條對角線的所有元素執(zhí)行相同的賦值操作。

考慮將其中重復的部分封裝成函數:

def diag_opreation(k, i, Num_element, R, A):
 c = int((Num_element-1)/2)
 while np.max([k, i])<Num_element:
 print(k, i)
 if np.abs(k-i)%2==0:
 R[k, i] = A[c-int((i-k)/2), c+int((i-k)/2)]
 else:
 R[k, i] = (A[c-int((i-k-1)/2), c+int((i-k+1)/2)]+A[c-int((i-k+1)/2), c+int((i-k-1)/2)])/2
 
 k=k+1
 i=i+1
 return R

則代碼變?yōu)椋?/strong>

for j in range(Num_element):
 print()
 i = 0
 # print(i, j)
 R = diag_opreation(i, j, Num_element, R, A)

# print(R)

for k in range(1, Num_element):
 print()
 i = 0
 # print(i, j)
 R = diag_opreation(k, i, Num_element, R, A)

print(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 lambda 匿名函數優(yōu)點和局限性深度總結

    Python lambda 匿名函數優(yōu)點和局限性深度總結

    這篇文章主要為大家介紹了Python lambda 匿名函數的優(yōu)點和局限性深度總結,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 詳談python在windows中的文件路徑問題

    詳談python在windows中的文件路徑問題

    下面小編就為大家分享一篇詳談python在windows中的文件路徑問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解使用Python寫一個向數據庫填充數據的小工具(推薦)

    詳解使用Python寫一個向數據庫填充數據的小工具(推薦)

    這篇文章主要介紹了用Python寫一個向數據庫填充數據的小工具,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python實現PDF轉Word的方法詳解

    Python實現PDF轉Word的方法詳解

    由于PDF的文件大多都是只讀文件,有時候為了滿足可以編輯的需要通??梢詫DF文件直接轉換成Word文件進行操作。本文為大家整理了一些實現方法,希望對大家有所幫助
    2023-02-02
  • pandas中的Timestamp只保留日期不顯示時間

    pandas中的Timestamp只保留日期不顯示時間

    這篇文章主要介紹了pandas中的Timestamp只保留日期不顯示時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python學習之內置函數總結

    Python學習之內置函數總結

    這篇文章主要為大家總結一下python?中常用的是個內置函數的使用方法,文中的示例代碼講解詳細,對我們學習Python有一定的幫助,需要的可以參考一下
    2022-03-03
  • 初學python數學建模之數據導入(小白篇)

    初學python數學建模之數據導入(小白篇)

    本篇文章是小白篇初學python的同學可以來共同學習了,本篇文章主要講解了python數學建模過程中的第一步數據導入,數據導入是所有數模編程的第一步,比你想象的更重要
    2021-08-08
  • python 引用傳遞和值傳遞詳解(實參,形參)

    python 引用傳遞和值傳遞詳解(實參,形參)

    這篇文章主要介紹了python 引用傳遞和值傳遞詳解(實參,形參)。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python中subplots_adjust函數的用法

    Python中subplots_adjust函數的用法

    這篇文章主要介紹了Python中subplots_adjust函數的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • python中使用urllib2偽造HTTP報頭的2個方法

    python中使用urllib2偽造HTTP報頭的2個方法

    這篇文章主要介紹了python中使用urllib2偽造HTTP報頭的2個方法,即偽造http頭信息,需要的朋友可以參考下
    2014-07-07

最新評論