Quand la mémoire supplémentaire est-elle allouée dans l'attribution du tableau NumPy ?

Linda Hamilton
Libérer: 2024-10-22 10:25:30
original
604 Les gens l'ont consulté

When Is Additional Memory Allocated in NumPy Array Assignment?

Affectation d'un tableau Numpy : différences d'allocation de mémoire

Dans NumPy, il existe trois façons courantes d'attribuer des valeurs à un tableau :

  • B = A
  • B[:] = A
  • numpy.copy(B, A)

B = A

Lorsque vous utilisez B = A, vous ne créez pas un nouveau tableau. Au lieu de cela, vous liez un nouveau nom (B) au tableau existant (A). En conséquence, toute modification apportée à un tableau sera reflétée dans l'autre.

B[:] = A

Cette syntaxe crée un nouveau tableau B avec le mêmes dimensions et valeurs que A. Le tableau d'origine A n'est pas modifié. Cette méthode nécessite moins d'allocation de mémoire que numpy.copy.

numpy.copy(B, A)

Cette méthode n'est pas légale telle que vous l'avez écrite. Ce devrait être B = numpy.copy(A). numpy.copy crée un nouveau tableau B avec les mêmes dimensions et valeurs que A. Cette méthode nécessite plus d'allocation de mémoire que B[:] = A car elle crée une copie physique distincte des données du tableau d'origine.

Quand la mémoire supplémentaire est-elle allouée ?

Une mémoire supplémentaire est allouée lorsque vous utilisez numpy.copy pour créer une nouvelle copie physique du tableau. En effet, il alloue un nouveau bloc de mémoire contigu pour les données copiées.

Quand la mémoire n'est-elle pas allouée ?

La mémoire n'est pas allouée lorsque vous utilisez B = A parce que vous renommez simplement le tableau d'origine. La mémoire n'est pas non plus allouée lorsque vous utilisez B[:] = A car elle réutilise le même emplacement mémoire que le tableau d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!