Python Numpy:将子数组合并为一个列表

3

我有一个numpy数组x,长这样:

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 ...]。我该如何实现?

2个回答

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

哦,我明白了...astype('float')...这就是我缺少的东西...我只需要list,所以list(x[:,0].astype('float'))。谢谢! - Plug4
@Plug4 如果你需要一个列表,可以使用 x[:,0].astype('float').tolist() - Ashwini Chaudhary

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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接