web-dev-qa-db-fra.com

Affectation à des colonnes dans NumPy?

Comment le code MATLAB suivant pourrait-il être écrit à l'aide de NumPy?

A = zeros(5, 100);
x = ones(5,1);
A(:,1) = x;

L'affectation à des lignes semble fonctionner facilement, mais je n'ai pas trouvé d'exemple d'assignation d'un tableau à une colonne d'un autre tableau.

32
Benno

Utilisation a[:,1] = x[:,0]. Vous avez besoin x[:,0] pour sélectionner la colonne de x comme un seul tableau numpy. Si vous avez le choix de formater x, il est préférable de ne pas en faire un tableau à deux dimensions en premier lieu, mais juste un tableau régulier (ligne):

>>> a
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])
>>> x = numpy.ones(5)
>>> x
array([ 1.,  1.,  1.,  1.,  1.])
>>> a[:,1] = x
>>> a
array([[ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.]])
52
BrenBarn
>>> A = np.zeros((5,100))
>>> x = np.ones((5,1))
>>> A[:,:1] = x
7
fraxel