将两个数组合并为一个? (NumPy的/ Python)的

时间:2018-01-23 23:25:44

标签: python arrays numpy

我目前有一个字符串数组,我正在尝试将它与另一个字符串数组连接在一起,形成一个完整的单词来进行一些Web解析。例如:`

Var1    [A   B    C, .... ....]
Var2    [1   2     3]

其中A和B的长度可变,我试图将它们连接在一起,如:``

`
C  [A+1   A+2   A+3
 B+1    B+2   B+3
C+1     C+2    C+3

这是我尝试过的事情

for param in np.nditer(Var2):
List = np.append(np.core.defchararray.add(Var1, Var2))

所以我试图将它们添加到一起,然后创建一个列表列表,但这不起作用。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这是你想要做的事情:

In [199]: list1 = ['abc','foo','bar']
In [200]: list2 = list('1234')
In [201]: [[a+b for b in list2] for a in list1]
Out[201]: 
[['abc1', 'abc2', 'abc3', 'abc4'],
 ['foo1', 'foo2', 'foo3', 'foo4'],
 ['bar1', 'bar2', 'bar3', 'bar4']]

等效使用np.char.add并广播:

In [210]: np.char.add(np.array(list1)[:,None], np.array(list2))
Out[210]: 
array([['abc1', 'abc2', 'abc3', 'abc4'],
       ['foo1', 'foo2', 'foo3', 'foo4'],
       ['bar1', 'bar2', 'bar3', 'bar4']], dtype='<U4')

对于这个小例子,列表理解版本更快。