Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Copiar Arreglos | Funciones Comúnmente Utilizadas de NumPy
Numpy Definitivo

bookCopiar Arreglos

A menudo, es necesario crear una copia de un arreglo para realizar modificaciones sin afectar el arreglo original.

Asignación simple

Primero, se explicará por qué no se puede crear simplemente otra variable utilizando array_2 = array_1, donde array_1 es el arreglo 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

Cambiamos el valor del primer elemento de array_2 a 10, pero esta asignación también cambió el valor del primer elemento de array_1 a 10.

Note
Nota

Con array_2 = array_1, no se crea un nuevo arreglo; en su lugar, se crea una referencia al mismo arreglo en memoria. Como resultado, cualquier cambio realizado en array_2 también afectará a array_1.

Para resolver este problema, podríamos escribir array_2 = np.array([1, 2, 3]), pero eso implicaría escribir el mismo código dos veces. Recuerde el principio clave en programación: No se repita.

Método ndarray.copy()

Afortunadamente, NumPy dispone de un método ndarray.copy() como solución a este 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

Ahora, se ha creado un nuevo arreglo para array_2 con los mismos elementos que array_1.

Para los arreglos 2D, el procedimiento de copia es exactamente el mismo.

Función numpy.copy()

En lugar del método .copy(), también podemos utilizar la función copy(), que toma el arreglo como su parámetro: array_2 = np.copy(array_1).

Tanto la función como el método funcionan igual; sin embargo, existe una diferencia. Ambos tienen el parámetro order, que especifica la disposición en memoria del arreglo, pero sus valores predeterminados son diferentes.

La imagen a continuación muestra la estructura del arreglo sales_data_2021 utilizado en la tarea:

Tarea

Swipe to start coding

Está analizando los datos de ventas trimestrales de una empresa para el año 2021. Los datos se almacenan en un array de NumPy llamado sales_data_2021, donde cada fila representa un producto específico y cada columna representa las ventas trimestrales de ese producto.

  1. Crear una copia de sales_data_2021 utilizando el método apropiado de un array de NumPy y almacenarla en sales_data_2022.
  2. Actualizar los dos últimos elementos de la primera fila (que representan las ventas trimestrales de un producto) en sales_data_2022 a 390 y 370:
    • Utilizar un índice positivo para especificar la fila;
    • Utilizar un slice con solo un valor negativo de start para indexar los dos últimos elementos.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

close

Awesome!

Completion rate improved to 3.7

bookCopiar Arreglos

Desliza para mostrar el menú

A menudo, es necesario crear una copia de un arreglo para realizar modificaciones sin afectar el arreglo original.

Asignación simple

Primero, se explicará por qué no se puede crear simplemente otra variable utilizando array_2 = array_1, donde array_1 es el arreglo 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

Cambiamos el valor del primer elemento de array_2 a 10, pero esta asignación también cambió el valor del primer elemento de array_1 a 10.

Note
Nota

Con array_2 = array_1, no se crea un nuevo arreglo; en su lugar, se crea una referencia al mismo arreglo en memoria. Como resultado, cualquier cambio realizado en array_2 también afectará a array_1.

Para resolver este problema, podríamos escribir array_2 = np.array([1, 2, 3]), pero eso implicaría escribir el mismo código dos veces. Recuerde el principio clave en programación: No se repita.

Método ndarray.copy()

Afortunadamente, NumPy dispone de un método ndarray.copy() como solución a este 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

Ahora, se ha creado un nuevo arreglo para array_2 con los mismos elementos que array_1.

Para los arreglos 2D, el procedimiento de copia es exactamente el mismo.

Función numpy.copy()

En lugar del método .copy(), también podemos utilizar la función copy(), que toma el arreglo como su parámetro: array_2 = np.copy(array_1).

Tanto la función como el método funcionan igual; sin embargo, existe una diferencia. Ambos tienen el parámetro order, que especifica la disposición en memoria del arreglo, pero sus valores predeterminados son diferentes.

La imagen a continuación muestra la estructura del arreglo sales_data_2021 utilizado en la tarea:

Tarea

Swipe to start coding

Está analizando los datos de ventas trimestrales de una empresa para el año 2021. Los datos se almacenan en un array de NumPy llamado sales_data_2021, donde cada fila representa un producto específico y cada columna representa las ventas trimestrales de ese producto.

  1. Crear una copia de sales_data_2021 utilizando el método apropiado de un array de NumPy y almacenarla en sales_data_2022.
  2. Actualizar los dos últimos elementos de la primera fila (que representan las ventas trimestrales de un producto) en sales_data_2022 a 390 y 370:
    • Utilizar un índice positivo para especificar la fila;
    • Utilizar un slice con solo un valor negativo de start para indexar los dos últimos elementos.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
single

single

some-alt