创建一个所有行都相同的 numpy 数组

BGr*_*een 3 python numpy

给定一个向量v,我想创建一个所有行都等于的 2D numpy 数组v。做这个的最好方式是什么?必须有比使用 for 循环更快的方法来做到这一点。有像fill,ones和之类的函数zeros可以用一个值填充整个数组,但是用相同的值填充每一列,但每列的值不同呢?

bal*_*ezz 5

广播可能有用:

v = np.random.normal(size=(4, 1))
v * np.ones((4, 3))
Run Code Online (Sandbox Code Playgroud)

输出:

array([[ 1.29471919,  1.29471919,  1.29471919],
   [ 0.26505351,  0.26505351,  0.26505351],
   [ 1.04885901,  1.04885901,  1.04885901],
   [-0.18587621, -0.18587621, -0.18587621]])
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是广播可能比 np.repeat 更快 (2认同)