将数组列表转换为python中的单个元素列表

时间:2015-08-03 21:32:44

标签: python arrays

我想将数组列表转换为单个元素列表。

我有这个数组列表:

[array([ 1.65988671]), array([ 1.66663357]), array([ 1.53351122]), array([ 1.60234953])]

我希望有这个:

[1.6153020312169204, 1.6843892323785852, 1.662793812752394, 1.6332755497183022].

我用过:

List=[]
for i in range(arr)):
    List.append(arr[i].tolist())

但我得到了这个[[ 1.65988671]), [ 1.66663357], [ 1.53351122], [ 1.60234953]]

我的代码出了什么问题?

5 个答案:

答案 0 :(得分:1)

使用my_list.extend而不是my_list.append,它应该做你想要的。

答案 1 :(得分:0)

import numpy as np

arr = [
    np.array([ 1.65988671]), 
    np.array([ 1.66663357]), 
    np.array([ 1.53351122]), 
    np.array([ 1.60234953])]
    my_list = []
    for x in arr:
        my_list.append(x[0])

这适合我。

答案 2 :(得分:0)

您可以使用列表解析来执行此操作:

[item for arr in list_with_arrays for item in arr.tolist()]

你也可以使用hstack:

list_with_arrays = [np.array([1, 2]), np.array([2, 3]), np.array([5, 6, 7])]
np.hstack(list_with_arrays).tolist()

[1, 2, 2, 3, 5, 6, 7]

答案 3 :(得分:0)

我绝不是专家,这可能没有意义,也不是最好的方法。但它确实有效。

您正在进行此操作的方式是将每个列表附加到新列表中,从而将它们保存为列表。通过将每个项目添加到新列表(连接),它可以正常工作。

我甚至在其中一个列表中添加了一些额外的数据,以确保其有效。

start = [[ 1.65988671,1.7890], [ 1.66663357], [ 1.53351122], [ 1.60234953]]
target=[]
for i in range(len(start)):
        target = target+start[i]
print (target)

答案 4 :(得分:0)

假设您使用python标准库中array模块的array

from array import array
arr = [array('f', [ 1.65988671]), array('f', [ 1.66663357]), array('f', [ 1.53351122]), array('f', [ 1.60234953])]
lst = [ae for el in arr for ae in el]

产生

[1.6598867177963257, 1.6666336059570312, 1.5335111618041992, 1.6023495197296143]