所以我有一个数组数组,比如
[array([-0.05504106, 4.21890792]), array([-0.05504106, 4.21890792]), array([-0.0533802 , 4.10717668]), array([-0.0546635 , 4.19501313])]
我正在尝试做的是将它变成一个包含2个数组的数组,其中组件放在一起如下:
[array([-0.05504106, -0.05504106, -.0533802, -.0546635]), array([4.21890792, 4.21890792, 4.10717668, 4.19501313])
我尝试了很多方法。第一个如下:
for i in range(len(array_1)-1):
zipped = zip(array_1[i], array_1[i+1], array_1[i+2])
print zipped
但是,这种方法的缺点是必须为array_1[i+n]
内的每个附加数组添加array_1
。如果array_1
中包含许多数组,那么根本不可行。
我尝试的下一件事是尝试将itertools.repeat
与上述代码结合使用,如下所示:
for i in range(len(array_1)-1):
zipped = zip(itertools.repeat(array_1[i], len(array_1))
print zipped
然而,这并没有按照我想要的方式发挥作用。
你能告诉我如何完成这项任务吗?我应该使用zip
和/或intertools.repeat
吗?
答案 0 :(得分:1)
我不确定你使用的是哪个array
课程,但是使用简单的列表你可以使用zip:
a = [[-0.05504106, 4.21890792], [-0.05504106, 4.21890792], [-0.0533802, 4.10717668],[-0.0546635, 4.19501313]]
b = list(zip(*a)) #omit list in python2
print(b)
打印:
[(-0.05504106, -0.05504106, -0.0533802, -0.0546635), (4.21890792, 4.21890792, 4.10717668, 4.19501313)]