Reorganización de Arreglos
El redimensionamiento de arreglos en NumPy permite cambiar la forma de un arreglo mientras se conservan todos los elementos. Es una operación comúnmente utilizada en aprendizaje automático, ya que muchas funciones y métodos de las bibliotecas de aprendizaje automático requieren que los arreglos tengan una forma específica.
Formas de los arreglos
La forma de un arreglo NumPy es una tupla que indica el número de elementos en cada dimensión (eje).
Por ejemplo, un array unidimensional de longitud 5
tiene una forma de (5,)
, mientras que un array bidimensional con 3
filas y 4
columnas tiene una forma de (3, 4)
:
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Los arrays de NumPy tienen un método .reshape()
para cambiar su forma. Solo es necesario pasar la forma del array resultante, ya sea como un entero, una tupla de enteros o enteros como argumentos separados.
Este método no modifica el array en el lugar, sino que devuelve un nuevo array.
De hecho, .reshape()
devuelve una vista del arreglo original, por lo que cualquier cambio realizado en el arreglo reestructurado también afectará al arreglo original.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
La cantidad de elementos en el arreglo reestructurado debe ser la misma que en el arreglo original, por lo que no se puede pasar una forma arbitraria.
En nuestro ejemplo, cambiar la forma del arreglo a 3 filas y 4 columnas (3x4
) o a una forma de 2 bloques, cada uno con 2 filas y 3 columnas (2x2x3
) sigue resultando en un total de 12 elementos.
Cambio de forma con -1
En NumPy, cuando se utiliza -1
en el método .reshape()
, automáticamente calcula el tamaño de esa dimensión en función del tamaño original del arreglo, manteniendo el número total de elementos igual.
El uso de .reshape(-1, 1)
es especialmente útil en aprendizaje automático cuando se necesita transformar un arreglo unidimensional en un arreglo bidimensional con una columna. El número de filas en este caso es igual al número de elementos (calculado automáticamente).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
El arreglo reestructurado se almacena como un arreglo 2D con 5
filas y 1
columna, teniendo la forma (5, 1)
. En contraste, el arreglo 1D inicial tiene la forma (5,)
, que es una tupla con un solo elemento. Para cualquier arreglo 1D, la forma siempre es (n,)
, donde n
representa la cantidad de elementos.
numpy.reshape()
La función reshape()
en NumPy es idéntica al método .reshape()
, pero se debe pasar un arreglo como su primer argumento. Para el parámetro shape
, se puede pasar una tupla de enteros o un solo entero, por ejemplo, np.reshape(array, (3, 4))
:
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Dispone de un array sales_data_2021
con datos simulados de ventas trimestrales para dos productos en 2021. Los primeros 4 elementos representan las ventas trimestrales del primer producto, y los últimos 4 elementos representan las ventas trimestrales del segundo producto.
- Utilice el método apropiado de
sales_data_2021
para reorganizarlo en un array 2D. - La primera fila debe contener las ventas trimestrales del primer producto.
- La segunda fila debe contener las ventas trimestrales del segundo producto.
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
Can you explain the difference between using .reshape() and np.reshape()?
What happens if I try to reshape an array to a shape that doesn't match the total number of elements?
Can you give more examples of reshaping arrays with different dimensions?
Awesome!
Completion rate improved to 3.7
Reorganización de Arreglos
Desliza para mostrar el menú
El redimensionamiento de arreglos en NumPy permite cambiar la forma de un arreglo mientras se conservan todos los elementos. Es una operación comúnmente utilizada en aprendizaje automático, ya que muchas funciones y métodos de las bibliotecas de aprendizaje automático requieren que los arreglos tengan una forma específica.
Formas de los arreglos
La forma de un arreglo NumPy es una tupla que indica el número de elementos en cada dimensión (eje).
Por ejemplo, un array unidimensional de longitud 5
tiene una forma de (5,)
, mientras que un array bidimensional con 3
filas y 4
columnas tiene una forma de (3, 4)
:
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Los arrays de NumPy tienen un método .reshape()
para cambiar su forma. Solo es necesario pasar la forma del array resultante, ya sea como un entero, una tupla de enteros o enteros como argumentos separados.
Este método no modifica el array en el lugar, sino que devuelve un nuevo array.
De hecho, .reshape()
devuelve una vista del arreglo original, por lo que cualquier cambio realizado en el arreglo reestructurado también afectará al arreglo original.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
La cantidad de elementos en el arreglo reestructurado debe ser la misma que en el arreglo original, por lo que no se puede pasar una forma arbitraria.
En nuestro ejemplo, cambiar la forma del arreglo a 3 filas y 4 columnas (3x4
) o a una forma de 2 bloques, cada uno con 2 filas y 3 columnas (2x2x3
) sigue resultando en un total de 12 elementos.
Cambio de forma con -1
En NumPy, cuando se utiliza -1
en el método .reshape()
, automáticamente calcula el tamaño de esa dimensión en función del tamaño original del arreglo, manteniendo el número total de elementos igual.
El uso de .reshape(-1, 1)
es especialmente útil en aprendizaje automático cuando se necesita transformar un arreglo unidimensional en un arreglo bidimensional con una columna. El número de filas en este caso es igual al número de elementos (calculado automáticamente).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
El arreglo reestructurado se almacena como un arreglo 2D con 5
filas y 1
columna, teniendo la forma (5, 1)
. En contraste, el arreglo 1D inicial tiene la forma (5,)
, que es una tupla con un solo elemento. Para cualquier arreglo 1D, la forma siempre es (n,)
, donde n
representa la cantidad de elementos.
numpy.reshape()
La función reshape()
en NumPy es idéntica al método .reshape()
, pero se debe pasar un arreglo como su primer argumento. Para el parámetro shape
, se puede pasar una tupla de enteros o un solo entero, por ejemplo, np.reshape(array, (3, 4))
:
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Dispone de un array sales_data_2021
con datos simulados de ventas trimestrales para dos productos en 2021. Los primeros 4 elementos representan las ventas trimestrales del primer producto, y los últimos 4 elementos representan las ventas trimestrales del segundo producto.
- Utilice el método apropiado de
sales_data_2021
para reorganizarlo en un array 2D. - La primera fila debe contener las ventas trimestrales del primer producto.
- La segunda fila debe contener las ventas trimestrales del segundo producto.
Solución
¡Gracias por tus comentarios!
single