Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Copiando Arrays | Funções Comumente Utilizadas do NumPy
Numpy Definitivo

bookCopiando Arrays

Frequentemente, é necessário criar uma cópia de um array para realizar alterações sem afetar o array original.

Atribuição Simples

Primeiramente, será discutido por que não é possível simplesmente criar outra variável utilizando array_2 = array_1, onde array_1 é o array original.

123456
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
copy

Alteramos o valor do primeiro elemento de array_2 para 10, mas essa atribuição também alterou o valor do primeiro elemento de array_1 para 10.

Note
Nota

Com array_2 = array_1, não está sendo criado um novo array; em vez disso, está sendo criada uma referência ao mesmo array na memória. Como resultado, quaisquer alterações feitas em array_2 também afetarão array_1.

Para resolver esse problema, poderíamos escrever array_2 = np.array([1, 2, 3]), mas isso significaria escrever o mesmo código duas vezes. Lembre-se do princípio fundamental na programação: Não se repita.

Método ndarray.copy()

Felizmente, o NumPy possui um método ndarray.copy() como solução para esse problema.

12345678
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
copy

Agora, foi criado um novo array para array_2 com os mesmos elementos de array_1.

Para arrays 2D, o procedimento de cópia é exatamente o mesmo.

Função numpy.copy()

Em vez do método .copy(), também podemos utilizar a função copy(), que recebe o array como parâmetro: array_2 = np.copy(array_1).

Tanto a função quanto o método funcionam da mesma forma; no entanto, existe uma diferença. Ambos possuem o parâmetro order, que especifica o layout de memória do array, mas seus valores padrão são diferentes.

A imagem abaixo mostra a estrutura do array sales_data_2021 utilizado na tarefa:

Tarefa

Swipe to start coding

Você está analisando os dados de vendas trimestrais de uma empresa para o ano de 2021. Os dados estão armazenados em um array NumPy chamado sales_data_2021, onde cada linha representa um produto específico e cada coluna representa as vendas trimestrais desse produto.

  1. Crie uma cópia de sales_data_2021 utilizando o método apropriado de um array NumPy e armazene em sales_data_2022.
  2. Atualize os dois últimos elementos da primeira linha (representando as vendas trimestrais de um produto) em sales_data_2022 para 390 e 370:
    • Utilize um índice positivo para especificar a linha;
    • Utilize um fatiamento com apenas um valor negativo em start para indexar os dois últimos elementos.

Solução

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

close

Awesome!

Completion rate improved to 3.7

bookCopiando Arrays

Deslize para mostrar o menu

Frequentemente, é necessário criar uma cópia de um array para realizar alterações sem afetar o array original.

Atribuição Simples

Primeiramente, será discutido por que não é possível simplesmente criar outra variável utilizando array_2 = array_1, onde array_1 é o array original.

123456
import numpy as np array_1 = np.array([1, 2, 3]) array_2 = array_1 # Setting the first element of array_2 to 10 array_2[0] = 10 print(array_1)
copy

Alteramos o valor do primeiro elemento de array_2 para 10, mas essa atribuição também alterou o valor do primeiro elemento de array_1 para 10.

Note
Nota

Com array_2 = array_1, não está sendo criado um novo array; em vez disso, está sendo criada uma referência ao mesmo array na memória. Como resultado, quaisquer alterações feitas em array_2 também afetarão array_1.

Para resolver esse problema, poderíamos escrever array_2 = np.array([1, 2, 3]), mas isso significaria escrever o mesmo código duas vezes. Lembre-se do princípio fundamental na programação: Não se repita.

Método ndarray.copy()

Felizmente, o NumPy possui um método ndarray.copy() como solução para esse problema.

12345678
import numpy as np array_1 = np.array([1, 2, 3]) # Copying the contents of array_1 array_2 = array_1.copy() # Setting the first element of array_2 to 10 array_2[0] = 10 print(f'Initial array: {array_1}') print(f'Modified copy: {array_2}')
copy

Agora, foi criado um novo array para array_2 com os mesmos elementos de array_1.

Para arrays 2D, o procedimento de cópia é exatamente o mesmo.

Função numpy.copy()

Em vez do método .copy(), também podemos utilizar a função copy(), que recebe o array como parâmetro: array_2 = np.copy(array_1).

Tanto a função quanto o método funcionam da mesma forma; no entanto, existe uma diferença. Ambos possuem o parâmetro order, que especifica o layout de memória do array, mas seus valores padrão são diferentes.

A imagem abaixo mostra a estrutura do array sales_data_2021 utilizado na tarefa:

Tarefa

Swipe to start coding

Você está analisando os dados de vendas trimestrais de uma empresa para o ano de 2021. Os dados estão armazenados em um array NumPy chamado sales_data_2021, onde cada linha representa um produto específico e cada coluna representa as vendas trimestrais desse produto.

  1. Crie uma cópia de sales_data_2021 utilizando o método apropriado de um array NumPy e armazene em sales_data_2022.
  2. Atualize os dois últimos elementos da primeira linha (representando as vendas trimestrais de um produto) em sales_data_2022 para 390 e 370:
    • Utilize um índice positivo para especificar a linha;
    • Utilize um fatiamento com apenas um valor negativo em start para indexar os dois últimos elementos.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3
single

single

some-alt