Cópia de array NumPy vs. vista

A diferença entre a cópia e a vista

A principal diferença entre a cópia e a vista do array está na cópia ser um novo array, enquanto essa vista é apenas uma vista do array original.

A cópia possui dados, qualquer alteração feita na cópia não afetará o array original, e qualquer alteração feita no array original também não afetará a cópia.

A vista não possui dados, qualquer alteração feita na vista afetará o array original, enquanto qualquer alteração feita no array original afetará a vista.

Cópia:

Exemplo

Fazer a cópia, alterar o array original e então exibir os dois arrays:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 61
print(arr) 
print(x)

Executar Exemplo

A cópia não deve ser afetada pelas alterações feitas no array original.

Vista:

Exemplo

Criar uma vista, alterar o array original e então exibir os dois arrays:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 61
print(arr) 
print(x)

Executar Exemplo

A vista deve ser afetada pelas alterações feitas no array original.

Alterações na vista:

Exemplo

Criar uma vista, alterar a vista e exibir os dois arrays:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31
print(arr) 
print(x)

Executar Exemplo

O array original deve ser afetado pelas alterações feitas na vista.

Verificar se o array possui dados

Como mencionado anteriormente, a cópia possui dados enquanto a vista não possui, mas como podemos verificar isso?

Cada array NumPy possui uma propriedade basese o array possuir dados, a propriedade base retornará Nenhum.

Caso contrário,base A propriedade referenciará o objeto original.

Exemplo

Imprimir o valor da propriedade base para verificar se o array possui seus próprios dados:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base)
print(y.base)

Executar Exemplo

Cópia Retornada Nenhum.

Visualizar Retornar ao Array Original