我想将两个2d阵列组合成一个NX2阵列,但我不知道我应该在python中使用什么命令。
例如,a = [1.2.3] b = [4,5,6]
,我希望有一个新数组,其中a作为x坐标,b作为y坐标,c = [(1,4)],(2,5),(3,6)]
用python语言提示吗?
答案 0 :(得分:6)
你很幸运,因为Python有一个内置的zip
函数,可以完全按照你想要的那样。
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]
请注意,在Python 3中,zip
返回迭代器而不是列表,因此您必须使用list(zip(a, b))
来获取列表。
另请注意,zip
会将结果的长度截断为最小的列表。
例如:
>>> zip([1, 2], [3, 4, 5])
[(1, 3), (2, 4)]
您可以使用itertools.izip_longest
(或Python 3中的itertools.zip_longest
)解决此问题。
>>> import itertools
>>> list(itertools.izip_longest([1, 2], [3, 4, 5], fillvalue=0))
[(1, 3), (2, 4), (0, 5)]
这将使用fillvalue
填补空白。默认情况下,fillvalue
设置为None
。