"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Quando a memória adicional é alocada na atribuição do array NumPy?

Quando a memória adicional é alocada na atribuição do array NumPy?

Publicado em 2024-11-03
Navegar:683

When Is Additional Memory Allocated in NumPy Array Assignment?

Atribuição de matriz Numpy: diferenças de alocação de memória

No NumPy, existem três maneiras comuns de atribuir valores a uma matriz:

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

B = A

Quando você usa B = A, você não está criando uma nova matriz. Em vez disso, você está vinculando um novo nome (B) ao array existente (A). Como resultado, quaisquer modificações feitas em um array serão refletidas no outro.

B[:] = A

Esta sintaxe cria um novo array B com o mesmas dimensões e valores de A. A matriz original A não é modificada. Este método requer menos alocação de memória em comparação com numpy.copy.

numpy.copy(B, A)

Este método não é legal como você escreveu. Deve ser B = numpy.copy(A). numpy.copy cria um novo array B com as mesmas dimensões e valores de A. Este método requer mais alocação de memória em comparação com B[:] = A porque cria uma cópia física separada dos dados do array original.

Quando a memória adicional é alocada?

Memória adicional é alocada quando você usa numpy.copy para criar uma nova cópia física da matriz. Isso ocorre porque ele aloca um novo bloco contíguo de memória para os dados copiados.

Quando a memória não é alocada?

A memória não é alocada quando você usa B = A porque você está simplesmente renomeando o array original. A memória também não é alocada quando você usa B[:] = A porque reutiliza o mesmo local de memória que o array original.

Declaração de lançamento Este artigo foi reimpresso em: 1729560494 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3