我有一堆将由循环形成的数组。我知道我可以通过这种方法进行连接,但是我只能使它对已经建立的数组起作用:
y1 = ['C1', 'C2', 'C3']
y2 = ['C4', 'C5', 'C6']
z = np.array([a+b for a, b in zip(y1, y2)])
但是如果我有更多的数组,即如果我将这些数组作为输入输入到数组x,我如何使其工作:
y1 = ['C1', 'C2', 'C3']
y2 = ['C4', 'C5', 'C6']
.
.
.
yx = ['C22', 'C23', 'C24']
我想得到一个输出:
z = ['C1C4...C22', 'C2C5...C23', 'C3C6...C24']
答案 0 :(得分:1)
您可以在创建所有这些数组时将它们存储在另一个数组中,然后zip
将包含它们的数组存储如下:
import numpy as np
y1 = ['C1', 'C2', 'C3']
y2 = ['C4', 'C5', 'C6']
y = [y1,y2]
z = np.array(["".join(elem) for elem in zip(*y)])
print(z)
这将为您提供:
['C1C4' 'C2C5' 'C3C6']
答案 1 :(得分:1)
如果您想使用numpy
执行该任务,则可以使用numpy.apply_along_axis
函数。考虑示例:
import numpy as np
def joiner(x):
return ''.join(x)
y1 = ['C1', 'C2', 'C3']
y2 = ['C4', 'C5', 'C6']
y = np.array([y1,y2])
z = np.apply_along_axis(joiner,0,y)
print(list(z)) #gives ['C1C4', 'C2C5', 'C3C6']
如上所述,您将需要某种结构来存储y1,y2,...
-在我的解决方案中使用np.array
。如果您想进一步了解numpy.apply_along_axis
,请阅读其documentation。