2016-02-22 42 views
0

假設我有一個像下面這樣的矩陣數組。我想訪問每個矩陣的每個第一個元素,並將其賦予變量a,並將每個矩陣的每個第二個元素賦給變量b,然後繼續執行c,d,e ...我想繪製a,b,c ...單獨查看差異,這就是爲什麼我需要將其提取到單獨的變量。在Python中訪問矩陣列表的各個列

[matrix([[-0.92041113], 
       [ 1.08098058], 
       [ 0.14296712], 
       [ 0.68220346], 
       [-2.06009246], 
       [ 2.67064141], 
       [ 0.02112063], 
       [-3.10444805], 
       [ 2.65878653], 
       [-2.07589813], 
       [-2.06215593], 
       [ 0.85664044], 
       [-3.74867982]]), 
    matrix([[-0.92040691], 
       [ 1.08097285], 
       [ 0.14295496], 
       [ 0.68220521], 
       [-2.06007836], 
       [ 2.67064582], 
       [ 0.02111738], 
       [-3.10443457], 
       [ 2.65875017], 
       [-2.07586394], 
       [-2.06215174], 
       [ 0.85664019], 
       [-3.74867324]]), 
    matrix([[-0.92040268], 
       [ 1.08096513], 
       [ 0.1429428 ], 
       [ 0.68220696], 
       [-2.06006425], 
       [ 2.67065023], 
       [ 0.02111412], 
       [-3.1044211 ], 
       [ 2.65871382], 
       [-2.07582975], 
       [-2.06214755], 
       [ 0.85663994], 
       [-3.74866666]]), 
    matrix([[-0.92039846], 
       [ 1.08095741], 
       [ 0.14293065], 
       [ 0.68220871], 
       [-2.06005015], 
       [ 2.67065464], 
       [ 0.02111087], 
       [-3.10440762], 
       [ 2.65867747], 
       [-2.07579557], 
       [-2.06214336], 
       [ 0.8566397 ], 
       [-3.74866008]])] 

以下是我的努力,

[beta_array[i][0] for i in range(0,3)] 

但我得到的輸出類似如下,

[matrix([[-0.92041113]]), 
matrix([[-0.92040691]]), 
matrix([[-0.92040268]]), 
matrix([[-0.92039846]])] 

我不能夠與該輸出密謀什麼。我的理想輸出是變量a中的(-0.92041113,-0.92040691,-0.92040268,-0.92039846),並且它是1。如果它是一個值的適當變量,我可以很容易地繪製它。有人能幫我做這件事嗎?

回答

1

請嘗試以下代碼:

[float(beta_array[i][0]) for i in range(0,3)] 
+0

感謝它的工作! – haimen

0

我想你想要的是:

[beta_array[i][0][0] for i in range(0,3)] 

雖然我不知道這是什麼matrix()叫你在那裏做。你使用了什麼框架?

+0

這個人給我這個樣子[矩陣輸出([ -0.92041113]]),矩陣([[ - 0.92040691]]),矩陣([[ - 0.92040268]])],我不想要。 – haimen

0

一個解決辦法是更大的矩陣內不使各個條目矩陣(而不是僅僅把它作爲一個大名單),然後做

a = matrix[:,0] 
b = matrix[:,1] 

+0

我收到以下錯誤, TypeError:列表索引必須是整數,而不是元組 – haimen

0

詢問指數0, 0,而不是指數0

>>> [beta_array[i][0, 0] for i in range(0,3)] 
[-0.92041112999999997, -0.92040690999999997, -0.92040268000000003] 

或者更好:

>>> [beta[0, 0] for beta in beta_array] 
[-0.92041112999999997, -0.92040690999999997, -0.92040268000000003, -0.92039846000000003] 

(不知道爲什麼,當你想要覆蓋所有四個矩陣使用range(0, 3)