从Numpy中的2个向量形成矩阵,重复1个向量

时间:2014-10-20 18:25:38

标签: python arrays numpy matrix

使用numpy数组我想以最经济的方式创建这样一个矩阵: 给出

from numpy import array
a = array(a1,a2,a3,...,an)
b = array(b1,...,bm)

应处理为矩阵M:

M = array([[a1,a2,b1,...,an],
           ...           ...,
           [a1,a2,bm,...,an]]

我知道numpy数组的广播方法,但无法找到一个好方法。 任何帮助将不胜感激,

欢呼声, 罗布

2 个答案:

答案 0 :(得分:2)

您可以先在a上使用numpy.resize,然后在重新调整大小的数组上使用numpy.insert在所需索引处添加b项:< / p>

In [101]: a = np.arange(1, 4)

In [102]: b = np.arange(4, 6)                                           

In [103]: np.insert(np.resize(a, (b.shape[0], a.shape[0])), 2, b, axis=1)                                                                       
Out[103]: 
array([[1, 2, 4, 3],                                                    
       [1, 2, 5, 3]])  

答案 1 :(得分:0)

您可以结合使用numpy.tilenumpy.hstack个功能。

M = numpy.repeat(numpy.hstack(a, b), (N,1))

我不确定我是否理解你的目标矩阵。