91 votes

Comment copier des données d'un tableau numpy vers un autre tableau numpy ?

Quel est le moyen le plus rapide de copier des données du tableau b vers le tableau a, sans modifier l'adresse du tableau a. J'en ai besoin parce qu'une bibliothèque externe (PyFFTW) utilise un pointeur sur mon tableau qui ne peut pas changer.

Par exemple :

a = numpy.empty(n, dtype=complex)
for i in xrange(a.size):
  a[i] = b[i]

Est-il possible de le faire sans boucle ?

8voto

Il y a beaucoup de choses différentes que vous pouvez faire :

a=np.copy(b)
a=np.array(b) # Does exactly the same as np.copy
a[:]=b # a needs to be preallocated
a=b[np.arange(b.shape[0])]
a=copy.deepcopy(b)

Les choses qui ne fonctionnent pas

a=b
a=b[:] # This have given my code bugs

3voto

JQK Points 73

Pourquoi ne pas utiliser

a = 0 + b

Je pense que c'est similaire à la multiplication précédente mais que c'est peut-être plus simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X