【发布时间】:2017-04-10 19:16:12
【问题描述】:
考虑两个 numpy 数组
array1 = np.arange(0,6)
array2 = np.arange(0,12)
我想运行一个循环(最好是列表理解),其中单轮的期望输出是
print(array1[0])
print(array2[0],array2[1]) or
print(array1[1])
print(array2[2], array2[3])
即循环运行六次,但对于array1 中的每一轮,它都会从array2 中选择两个连续的元素。
我尝试过类似的东西
for i in xrange(array1):
for v in xrange(array2):
但这显然在第一个循环中运行第二个循环,我如何同时运行它们但在一轮中从每个数组中选择不同数量的元素?
我也尝试过使循环长度相等,例如
array1 = np.repeat(np.arange(0,6),2).ravel()
array1 = [0,0,1,1,2,2.....5,5]
但是,这将使两个数组的长度相等,但我仍然无法获得所需的输出
(实际情况下,数组的元素是pandas系列对象)
【问题讨论】:
-
重塑第二个数组:
array2.reshape(-1,2),然后使用相同的迭代索引索引到array1,并重塑array2? -
这与pandas无关。删除标签。
-
@Divakar。感谢您提醒我
-1形状。我会将其纳入我的答案中。