Je veux créer un tableau numpy MxN en clonant un Ndarray Mx1 N fois. Existe-t-il un moyen Pythonic efficace de le faire au lieu de boucler?
Btw la manière suivante ne fonctionne pas pour moi (X est mon tableau Mx1):
numpy.concatenate((X, numpy.tile(X,N)))
car il a créé un tableau [M * N, 1] au lieu de [M, N]
Vous pouvez utiliser vstack :
numpy.vstack([X]*N)
par exemple.
>>> 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]])
Avez-vous essayé ceci:
n = 5
X = numpy.array([1,2,3,4])
Y = numpy.array([X for _ in xrange(n)])
print Y
Y[0][1] = 10
print Y
impressions:
[[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]
[1 2 3 4]]
[[ 1 10 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]]