Python 将3个列表合并到一个包含多个项目的列表

Python 将3个列表合并到一个包含多个项目的列表,python,numpy,Python,Numpy,我是python新手,我被卡住了。我一直在玩这个。我试图让我的3个列表加入,当我加入时,python说新列表只包含1项。如何使它们完全合并 以下是我现在掌握的代码: (其中avg[]是包含大量数据的数组) 但所有项目的实际长度为107。 请帮助您将数组放入另一个数组中。试试这个: NF=numpy.append(q,pu)好的,这会非常慢,也许numpy有自己的方法,但是使用python方法,如果您有一维数组,请尝试以下方法: from itertools import chain items

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

以下是我现在掌握的代码:

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

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

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

好的,这会非常慢,也许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)

如果
avg
是列表,那么
q
p
u
也是列表的一部分,因此也将是列表。在这种情况下,可以使用加法连接列表:

q+p+u
如果需要NumPy阵列,可以使用:

我使数组变小了,因此结果更容易检查。 其他备选方案包括:


在上述示例中,
q
p
u
可以是NumPy数组或Python列表。在每种情况下,都会返回一个NumPy数组。

只要执行
NF=p+q+u
就可以了fine@RNar如果
p
q
是np数组,则“+”不是串联(OP称为“列表”,但后来明确使用numpy,所以这一点还不清楚)OP,请澄清:avg是一个列表还是一个numpy数组。最好你解释一下代码,只有代码的答案被认为是低质量的答案。
item_list = [x for x in items]
len(item_list)
q+p+u
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])