J'ai un ndarray de forme, disons et j'ai des grappes nb de données de forme (na, nc) p> je voudrais remplir "my_array "Avec mes grappes de données comme suit: p> mais je voudrais le faire pour tout axe arbitraire pour un ensemble de données de forme arbitraire. Comment ferais-je cela? P> ** Modifier **
Quelqu'un a souligné une ambiguïté dans ma question. Ci-dessous est un exemple de code de ce que je sais faire, menant à ce que je ne sais pas. P> Ce que je sais: p> générique nous pourrait considérer p> à partir de là, je voudrais remplir mon_array avec my_bits le long de l'axe nj. Comment ferais-je cela? Je regarde la fonction NDiter, mais je ne suis pas sûr de quoi faire avec ça. p> p>
3 Réponses :
Il y a un problème avec les dimensions ici.
Si je l'ai bien compris, my_array [:, 0,:] code> est la même dimension que my_bits code>. Donc, l'affectation doit être effectuée comme ceci: import numpy as np
Na = 2
Nb = 2
Nc = 2
my_array = np.zeros((Na, Nb, Nc))
my_bits = np.ones((Na, Nc))
print('my_array before', my_array)
for b in range(Nb):
my_array[:, b, :] = my_bits
print('my_array after', my_array)
Merci d'avoir souligné une ambiguïté dans ma question. Je vais le réparer dès que j'aurai fini avec ce commentaire. my_bits est une liste (tuple, tableau, tout igréable) des bits de données de dimension (NA, NC).
Je pense que vous voudrez peut-être que vous voudrez peut-être Numpy. transposer
en utilisant Une autre approche consiste à construire un SLICE CODE> Objet et itérer cela. p> pour un autre axe p> dans ce cas transpose code> pour déplacer l'axe d'itération à une position connue, à l'avant ou en dernier, est effectué dans certaines fonctions numpy code>. idx code> varie comme: p > In [61]: np.s_[:,3,:]
Out[61]: (slice(None, None, None), 3, slice(None, None, None))