2014-06-25 27 views
3

我有一個numpy的陣列x,看起來像這樣:的Python NumPy的:子陣列一個列表

In: x 
Out: 
array([[array([ 1.]), 0.0], 
     [array([-0.00770808]), array([ 0.90825723])], 
     [array([-0.0358526]), array([ 0.59267366])], 
     [array([ 0.0088844]), array([ 0.89480382])], 
     [array([ 0.0387529]), array([ 0.56483939])], 
     [array([-0.08508252]), array([ 0.20664826])], 
     [array([-0.04159874]), array([ 0.538443])], 
     [array([ 0.07626737]), array([ 0.25998565])], 
     [array([ 0.00222671]), array([ 0.97386301])], 
     [array([-0.12652962]), array([ 0.0621885])], 
     [array([ 0.01404373]), array([ 0.83703121])]], dtype=object) 

你看,有11元組。我想用每個元組的每個元素創建一個列表。這將是一個如下所示的列表: [1, -0.00770808, -0.0358526, 0.0088844, 0.0387529 ... ]。我怎樣才能做到這一點?

回答

3

你可以做這樣的事情:

>>> x[:,0].astype('float') 
array([ 1.  , -0.00770808, -0.0358526 , 0.0088844 , 0.0387529 , 
     -0.08508252, -0.04159874, 0.07626737, 0.00222671, -0.12652962, 
     0.01404373]) 
+0

ohhh我看到... astype('float')...那就是我所缺少的......我只需要'list'以及list'(x [:,0] .astype('float'))'謝謝! – Plug4

+0

@ Plug4如果您需要列表,您可以使用'x [:,0] .astype('float')。tolist()'。 –

1

你可以簡單地發出

mylist = [a[0][0] for a in x] 

其中x是你的陣列。演示:

>>> mylist = [a[0][0] for a in x] 
>>> mylist 
[1.0, -0.00770808, -0.035852599999999998, 0.0088844000000000006, 0.0387529, -0.085082519999999995, -0.041598740000000002, 0.076267370000000001, 0.0022267099999999998, -0.12652962000000001, 0.014043730000000001]