python實現由陣列生成對稱矩陣

2022-09-25 19:21:14 字數 854 閱讀 2805

在實際應用中,經常會遇上這樣的小需求:根據一段給定的陣列,生成由這一段陣列值構成的對稱矩陣。

例如,給定陣列[1,2,3,4,5,6,7,8,9,10],要求生成如下的矩陣:

[[0,1,2,3,4],

[1,0,5,6,7],

[2,5,0,8,9],

[3,6,8,0,10],

[4,7,9,10,0]]

其中,對角元全為0,該型別的矩陣完全由給定的陣列決定。

筆者給出實現以上功能的一種python參考**如下:

def semi_to_full(m):

import numpy as np

n = len(m)

n_matrix = int((1+int((1+8*n)**0.5))/2)

semi_matrix = np.zeros((n_matrix,n_matrix),dtype='int32')

start_index = 0

for row in range(n_matrix-1):

end_index = start_index+(n_matrix-1-row)

semi_matrix[row,row+1:]=m[start_index:end_index]

start_index = end_index

full_matrix程式設計客棧 = semi_matrix+semi_matrix.t

returnwefmy full_matrixwww.cppcns.com

**邏輯如此:先得到陣列長度以推定出所欲生程式設計客棧成矩陣的規格,接著按照陣列值的順序生成矩陣的上對角元,最後利用對稱性完成整個矩陣輸出。

該函式引數只有乙個,即給定的numpy陣列。

php實現根據字串生成對應陣列的方法

先看看如下示例 根據 config生成以下陣列 ima程式設計客棧ge 程式設計客棧 2.jpg name about open true 方法 使用eval實現 keys explode key 程式設計客棧 for i 0,len count keys i 輸出結果 本文標題 php實現根據字串...

python 生成陣列 Python建立陣列

1 建立陣列 array函式 a 1,2 3,4 array a array 1,2 3,4 arange函式 指定初始值 終值 步長來建立陣列 importnumpy numpy.arange 0,1,0.1 array 0.0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9 ...

括號生成(python實現

題目描述 示例 解題思路 回溯 通過確保每一步都能夠實現有效序列,盡早實現剪枝 我們首先找到回溯的出口條件 當左右括號都達到最大數量n時,加入結果集 接下來以左括號開始,不斷判斷兩個條件進行遞迴呼叫,直到滿足出口條件 1 左括號是否達到最大數量n 若小於,則使左括號數量加一,路徑加上 2 左括號個數...