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