2017-07-31 38 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

私はちょうど分布の1つを選び、それをXに対してプロットしたいと思います。基本的に二重括弧の問題は問題を引き起こしています。 –

答えて

0

を言わせてプロットできるように、私はそれらのいずれかを選択して変換することができる方法を教えてもらえます2Dまたはネストされたリストを使用する。

次でそれを作成することができます:[0.43397114、0.00939583、0.55663303]

P [0] [0]にアクセスします

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

P [0]は最初の配列にアクセスします最初の配列の最初の要素は0.43397114

+0

私はそれを行うために1つの行がある可能性があると思いました。だから、私は各要素にアクセスして新しいリストを作成する必要がありますか? –

+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

[OK]を私は、もしかしたら何をしたいことはlist of listsからlistを作ることであると仮定します。

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次元を維持すること。

それが配列されていた場合は、インデックス付きの列は

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

1dのだろう。しかし、私はあなたがその特定のディスプレイを得た方法へと困惑しています。 matrix(はありません。内部のリストにはカンマがありますが、外側のリストの間にはありません。実際の場合、2dではなく、リストの配列があることを意味する可能性があります。しかし、インデックス作成の動作は期待できません。

関連する問題