Copiar 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.
123456import 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)
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.
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.
12345678import 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}')
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:
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.
- Crear una copia de
sales_data_2021utilizando el método apropiado de un array de NumPy y almacenarla ensales_data_2022. - Actualizar los dos últimos elementos de la primera fila (que representan las ventas trimestrales de un producto) en
sales_data_2022a390y370:- Utilizar un índice positivo para especificar la fila;
- Utilizar un slice con solo un valor negativo de
startpara indexar los dos últimos elementos.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.7
Copiar 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.
123456import 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)
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.
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.
12345678import 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}')
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:
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.
- Crear una copia de
sales_data_2021utilizando el método apropiado de un array de NumPy y almacenarla ensales_data_2022. - Actualizar los dos últimos elementos de la primera fila (que representan las ventas trimestrales de un producto) en
sales_data_2022a390y370:- Utilizar un índice positivo para especificar la fila;
- Utilizar un slice con solo un valor negativo de
startpara indexar los dos últimos elementos.
Solución
¡Gracias por tus comentarios!
single