2017-07-31 105 views
-3

我有一個穩定狀態分佈的矩陣,這就是結果如何出來。雙括號數組到一個數組

[[ 0.43397114, 0.00939583, 0.55663303] 
[ 0.43397114, 0.00939583, 0.55663303] 
[ 0.43397114, 0.00939583, 0.55663303]] 

例如,我想選擇其中之一作爲P[0]。但它出來爲

[[ 0.43397114, 0.00939583, 0.55663303]] 

誰能告訴我怎麼能選擇並轉換其中的一個,因爲他們是如此,它可以繪製爲相同的假設X = np.linspace(100,100,3)

+5

您的原始粘貼代碼在語法上不正確。請先修復它。提示:需要8個逗號,也許更多, – DyZ

+0

你想看到什麼? – Batman

+0

我只想選擇其中一個分佈並將其與X進行比較。基本上,雙括號問題會導致問題。 –

回答

0

它看起來像你想使用2D或嵌套列表。

可以用下面的創建:

p = [[ 0.43397114, 0.00939583, 0.55663303], 
    [ 0.43397114, 0.00939583, 0.55663303], 
    [ 0.43397114, 0.00939583, 0.55663303]] 

P [0]將訪問所述第一陣列,它是[0.43397114,0.00939583,0.55663303]

P [0] [0]將訪問第一個數組的第一個元素是0.43397114

+0

我認爲這可能是一條線。所以我應該訪問每個元素,然後創建一個新的列表? –

+0

有沒有必要創建一個新的列表。只要明白當你做'p [0]'時返回的第一個對象已經是一個列表。然後按照通常的方式訪問您想要的元素作爲列表。 – Batman

+0

你在最初的問題中寫的東西對我來說沒有多大意義。你能不能在每個句子只用一個方向使用任何代詞來重新說明它,以便我確切地知道你想要做什麼? @Eric Enkele – Simon

0

您的「矩陣」實際上只是一個列表清單。所以當你說p[0]你真正在做的是訪問列表的第一個成員。其中,在這種情況下是列表。如果你想得到第一個元素,例如,你可以做p[0][0]。或者p[0][1]。或p[2][2]

另外,您可以使用一個numpy.matrix做到這一點。

import numpy as np 

p = np.matrix("1, 2, 3; 4, 5, 6; 7, 8, 9") 
foo = p.item(0) 
1

好,我將只是假設,也許你想要的是讓listlist of lists

In [1]: import numpy as np 

In [2]: P = [[ 0.43397114, 0.00939583, 0.55663303], 
    ...: [ 0.43397114, 0.00939583, 0.55663303], 
    ...: [ 0.43397114, 0.00939583, 0.55663303]] 

In [3]: P = np.array(P) 

In [4]: P = P.flatten() 

In [5]: P 
Out[5]: 
array([ 0.43397114, 0.00939583, 0.55663303, 0.43397114, 0.00939583, 
     0.55663303, 0.43397114, 0.00939583, 0.55663303]) 

現在,您可以輕鬆地繪製它們。我希望這是你的意思。

1

我希望這種行爲,如果你已經創建了一個np.matrix:索引時

In [37]: mat=np.matrix([[ 0.43397114, 0.00939583, 0.55663303] 
    ...: ,[ 0.43397114, 0.00939583, 0.55663303] 
    ...: ,[ 0.43397114, 0.00939583, 0.55663303]]) 
    ...: 
In [38]: mat 
Out[38]: 
matrix([[ 0.43397114, 0.00939583, 0.55663303], 
     [ 0.43397114, 0.00939583, 0.55663303], 
     [ 0.43397114, 0.00939583, 0.55663303]]) 
In [39]: mat[0] 
Out[39]: matrix([[ 0.43397114, 0.00939583, 0.55663303]]) 

該數組子類保留2D維度。

如果它一直數組,索引行會1D

In [42]: mat.A[0] 
Out[42]: array([ 0.43397114, 0.00939583, 0.55663303]) 

但我困惑的是你怎樣得到那個特定的顯示器。沒有matrix(。內部列表中有逗號,但不包括外部列表中的逗號。如果是真的,可能意味着你有一系列的列表,而不是2d。但是,我不希望這種索引行爲。