dans MATLAB, vous pouvez affecter une valeur à plusieurs tranches de la même liste: Comment pouvez-vous faire cela en python avec une matrice numpue? P> >>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a[1:3,7:9] = 10
IndexError: too many indices
3 Réponses :
a = np.arange(10) a[[range(3)+range(6,9)]] = 10 #or a[[0,1,2,6,7,8]] = 10 print a that should work I think ... I dont know that its quite what you want though
Peut-on être atteint sans engourdir?
En effet. Numpy est le vrai roi des doublures.
Vous pouvez également envisager d'utiliser http://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html p> np.r _ code>:
de http://docs.scipy.org/doc/numpy /User/basics.indexing.html (section "RABES D'INDEX"). Notez que les indices pour les tranches souhaitées doivent être contenues dans 'np.array ()'.
>>> x = np.arange(10,1,-1) >>> x array([10, 9, 8, 7, 6, 5, 4, 3, 2]) >>> x[np.array([3, 3, 1, 8])] array([7, 7, 9, 2])
Une raison pour laquelle vous voudrez peut-être le faire dans une déclaration au lieu de le faire dans deux déclarations?
@Sukritkalra Je ne peux pas parler pour l'auteur de la question, mais un exemple de cas est quand on tente de former une compréhension de la liste d'un tel multicaison (ce que j'essaie de faire et pourquoi je suis arrivé à cette question)