将3个列表连接到包含许多项目的一个列表

时间:2015-12-08 21:56:38

标签: python numpy

我是python的新手而且我被卡住了。我一直在玩这个游戏。我试图让我的3个列表加入,当我做python时说新列表只包含1个项目。如何让它们完全合并?

这是我现在的代码:

(其中avg []是包含大量数据的数组)

q=avg[0:40]

p=avg[53:70]

u=avg[95:145]

pu=p+u

NF=[numpy.append(q,pu)]

>>>len(NF)

>>1

但所有项目的实际长度为107。 请帮忙

4 个答案:

答案 0 :(得分:1)

如果#container { position: absolute; } .div-1 { float: left; width: 45%; padding: 2%; } .div-2 { clear: both; } .div-3 { float: right; width: 45%; padding: 2%; } 是列表,则avgqp是列表的片段,因此也是列表。在这种情况下,您可以使用add:

连接列表
u

如果您需要NumPy数组,可以使用np.concatenate

q+p+u

我使数组变小,因此结果更容易检查。 其他替代方案包括np.hstacknp.r_

In [48]: avg = np.arange(20)

In [49]: q = avg[0:4]

In [50]: p = avg[5:7]

In [51]: u = avg[9:14]

In [52]: np.concatenate([q,p,u])
Out[52]: array([ 0,  1,  2,  3,  5,  6,  9, 10, 11, 12, 13])

在上面的示例中,In [53]: np.hstack([q,p,u]) Out[53]: array([ 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13]) In [54]: np.r_[q,p,u] Out[54]: array([ 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13]) qp可能是NumPy数组或Python列表。在每种情况下都返回一个NumPy数组。

答案 1 :(得分:0)

您将数组放在另一个数组中。试试这个: NF=numpy.append(q,pu)

答案 2 :(得分:-1)

q=avg[0:40]

p=avg[53:70]

u=avg[95:145]

pu=p+u

NF=[numpy.append(q,pu)]  #problem right here just do NF = numpy.append(q,pu)

>>>len(NF)

>>1

答案 3 :(得分:-1)

好的,这将是非常慢的,也许numpy有自己的方式,但使用python方式,并提供你有一维数组,试试这个:

from itertools import chain

items = chain.from_iterable([avg[0:40], avg[53:70], avg[95:145]])

关于将返回生成器的语句,可以将其转换为报告其长度的列表。

item_list = [x for x in items]
len(item_list)