我有一個問題,我建立一些矩陣取決於,比方說,兩個整數參數。我們稱它們爲A,它依賴於p1,p2,其中p1,p2取值爲0到5.Python的數據結構:參數相關陣列
Python中是否有方法將A的特徵值和特徵向量存儲在名爲B的「對象」中那麼類似B(1,2)[i](或B [1,2,i])的結果將給出矩陣A的特徵值(對於i = 0)或特徵向量(對於i = 1) p1 = 1和p2 = 2?
目前我正在做的是將特徵向量存儲在字典中,如下面的簡單示例所示,但我認爲這是一種骯髒的黑客攻擊。我將不勝感激任何
例子:
import numpy as np
# Build A matrices
def Amatrix(p1,p2):
import numpy as np
return np.array([[p1,p2/10],[p2/10,-p1]])
# Empty dict
eigvec_dict = {}
for p1 in range(3):
for p2 in range(2):
label = str(p1)+str(p2)
eigenvec_dict[label] = np.linalg.eigh(Amatrix(p1,p2))
eigenvec_dict.keys()
Out[9]: ['11', '10', '00', '01', '20', '21']
eigenvec_dict["01"][0]
Out[10]: array([-1., 1.])
eigenvec_dict["01"][1]
Out[11]:
array([[-0.70710678, 0.70710678],
[ 0.70710678, 0.70710678]])
我會使用一個數組作爲參數。要麼你可以爲Evals創建一個3d數組,或者爲Evecs創建一個4d數組,或者如果你必須一起創建一個「dtype = object」的二維數組並在每個單元格中存儲一個包含Evals和Evecs的'namedtuple'。 –
你好Currix並歡迎來到該網站。我們通常會試着將問題保留在細節部分,所以我將它們修剪了一下。 – MackM
感謝您的幫助和修剪。 – Currix