ste*_*ios 33 python arrays numpy concatenation append
我想通过克隆Mx1 ndarray N次来创建一个MxN numpy数组.是否有一种有效的pythonic方法来代替循环?
顺便说一句,以下方式对我不起作用(X是我的Mx1数组):
numpy.concatenate((X, numpy.tile(X,N)))
Run Code Online (Sandbox Code Playgroud)
因为它创建了[M*N,1]数组而不是[M,N]
Cor*_*mer 54
你很近,想要使用np.tile,但是像这样:
a = np.array([0,1,2])
np.tile(a,(3,1))
Run Code Online (Sandbox Code Playgroud)
结果:
array([[0, 1, 2],
[0, 1, 2],
[0, 1, 2]])
Run Code Online (Sandbox Code Playgroud)
如果你打电话,np.tile(a,3)你会得到concatenate你所看到的行为
array([0, 1, 2, 0, 1, 2, 0, 1, 2])
Run Code Online (Sandbox Code Playgroud)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html
ato*_*3ls 13
你可以使用vstack:
numpy.vstack([X]*N)
Run Code Online (Sandbox Code Playgroud)
例如
>>> import numpy as np
>>> X = np.array([1,2,3,4])
>>> N = 7
>>> np.vstack([X]*N)
array([[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4],
[1, 2, 3, 4]])
Run Code Online (Sandbox Code Playgroud)