如何使用广播将一个矩阵的每一行复制到另一个矩阵的每一行?

时间:2017-03-03 02:13:29

标签: python-2.7 numpy numpy-broadcasting

如果我有以下矩阵:

a = np.array([['A'], ['B'], ['C']])
b = np.array([['0'], ['0'], ['0'], ['0'], ['0'], ['0']])

我希望得到以下内容:

c = np.array([['A'], ['0'], ['B'], ['0'], ['C'], ['0']])

有没有办法使用某种类型的numpy广播/矢量化解决方案而不是for循环来获取c?

2 个答案:

答案 0 :(得分:1)

瞧:

c = np.reshape(b, (3, 2, 1))
c[:,0]=a
c.shape=6,1
c
array([['A'],
       ['0'],
       ['B'],
       ['0'],
       ['C'],
       ['0']], 
      dtype='<U1')

答案 1 :(得分:1)

b -

中进行原位编辑
b[::2] = a

要在新数组中进行更改,请复制并编辑 -

c = b.copy()
c[::2] = a