双括号数组到数组

时间:2017-07-31 21:57:37

标签: python arrays numpy markov-chains

我有一个稳态分布矩阵,这就是结果的结果。

[[ 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)

4 个答案:

答案 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 :(得分: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。但是,我不会期望索引行为。

答案 2 :(得分: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,099,0039583,0.55663303]

p [0] [0]将访问第一个数组的第一个元素,即0.43397114

答案 3 :(得分: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)