Quelle est la différence entre les redimensionner et de les remodeler lors de l'utilisation de tableaux dans Numpy?
J'ai commencé à utiliser 'NumPy et je suis en train d'essayer de comprendre la différence entre resize
et reshape
pour les tableaux.
Avez-vous essayé une recherche?
Ce n'est pas une copie exacte, mais il peut aider: stackoverflow.com/questions/41171034/...
sum(ndarray.shape)
et ndarray.size
sont les mêmes après ndarray.reshape
. Ces valeurs seront différentes après ndarray.resize
reshape
est utilisé tout le temps; resize
est rarement nécessaire, et confond souvent les débutants; l'ignorer.Ce n'est pas une copie exacte, mais il peut aider: stackoverflow.com/questions/41171034/...
OriginalL'auteur Rish_Saxena | 2017-01-07
Vous devez vous connecter pour publier un commentaire.
Remodeler ne change pas les données comme indiqué ci ici.
Redimensionner change les données comme on peut le voir ici.
Voici quelques exemples:
Après remodeler le tableau n'a pas changé, mais seulement les sorties d'un tableau temporaire de remodeler.
Après redimensionner le tableau a changé de forme.
ar.resize(rows,cols)
les modifications de la table initiale en place, tandis quenp.resize(ar,X)
sorties seulement le redimensionnement de la matrice, avecar
rester le même. Aussi, si la nouvelle taille est plus grande que l'originalar
,ar.resize
ajoute des zéros à la fin, alors quenp.resize
répète l'originalar
OriginalL'auteur Rahul Reddy Vemireddy
supposons que vous disposez des éléments suivants np.ndarray :
Maintenant, nous essayons de " un.remodeler'
Nous voyons que la forme n'a pas changé
essayons 'un.redimensionner " maintenant
'redimensionner' a changé la forme originale de notre tableau numpy (Il change de forme "EN PLACE").
OriginalL'auteur Harikrishnan M S
Une différence majeure est reshape() ne modifie pas vos données, mais de les redimensionner() ne changer. resize() première adapte à toutes les valeurs dans le tableau d'origine, après que, si l'espace supplémentaire est-il (ou de la taille du tableau est plus grand que le tableau d'origine), puis il ajoute ses propres valeurs. @David mentionné dans les commentaires, quelles sont les valeurs de redimensionnement() ajoute dépend de qui est appelé.
Vous pouvez appeler
reshape()
etresize()
fonction dans l'une des deux manières suivantes.numpy.resize()
ndarray.resize()
- oùndarray
estn
dimensions tableau vous redimensionnez.Vous pouvez même appeler remodeler aussi comme
numpy.reshape()
etndarray.reshape()
. Mais ici, ils sont presque identiques, à l'exception de la syntaxe.Un point à remarquer est que, reshape() sera toujours essayer de rendre un point de vue dans la mesure du possible, autrement, serait de retour une copie. En outre, il peut pas dire ce qui sera restituée lors de la, mais vous pouvez faire votre code de lever d'erreur à chaque fois que les données sont copiées.
Pour redimensionner() de la fonction,
numpy.resize()
renvoie une nouvelle copie de tableau alors quendarray.resize()
t-il en place. Mais ils ne vont pas àview
chose.Maintenant arriver au point que ce qui devrait être les valeurs des éléments supplémentaires. De la doc, il est dit
Donc pour
ndarray.resize()
c'est la valeur0
, mais pournumpy.resize()
c'est les valeurs du tableau lui-même (bien sûr, tout ce qui peut adapter à la nouvelle taille). Ci-dessous extrait de code sera plus clair.Vous pouvez aussi voir que
ndarray.resize()
retourneNone
et le redimensionnement en place.OriginalL'auteur GadaaDhaariGeek