Mario Alexander Vargas Celis
PreguntaEn **NumPy**, puedes obtener los **elementos únicos** y sus **conteos** utilizando varias funciones útiles como
np.unique()### Elementos Únicos y sus Conteos
####
np.unique()La función
np.unique()import numpy as np \# Crear un array con elementos repetidos array = np.array(\[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]) \# Obtener los elementos únicos unicos = np.unique(array) \# Obtener los elementos únicos y sus conteos unicos, conteos = np.unique(array, return\_counts=True) print("Elementos únicos:", unicos) print("Conteos:", conteos)
### Salida:
Elementos únicos: \[1 2 3 4] Conteos: \[1 2 3 4]
### Copias y Vistas en NumPy
Cuando trabajas con arrays en NumPy, debes entender si estás manipulando **copias** o **vistas** de un array. Esto afecta el rendimiento y el comportamiento cuando modificas arrays.
#### 1. **Vistas (Views)**:
- Una **vista** es una referencia al array original. Cambios en la vista afectan al array original.
- Al usar técnicas como **slicing** (
:\# Crear un array original array\_original = np.array(\[1, 2, 3, 4, 5]) \# Crear una vista del array vista = array\_original\[:3] \# Modificar la vista vista\[0] = 100 print("Array original después de modificar la vista:", array\_original) print("Vista:", vista)
### Salida:
Array original después de modificar la vista: \[100 2 3 4 5] Vista: \[100 2 3]
#### 2. **Copias**:
- Una **copia** es un nuevo array en memoria. Cambios en la copia no afectan al array original.
- Para crear una copia explícita, se usa
np.copy()\# Crear un array original array\_original = np.array(\[1, 2, 3, 4, 5]) \# Crear una copia del array copia = np.copy(array\_original) \# Modificar la copia copia\[0] = 100 print("Array original después de modificar la copia:", array\_original) print("Copia:", copia)
### Salida:
Array original después de modificar la copia: \[1 2 3 4 5] Copia: \[100 2 3 4 5]
### Resumen:
- **Elementos Únicos**: Usa
np.unique()- **Vistas**: Son referencias al array original. Modificar una vista afecta el array original.
- **Copias**: Son nuevos arrays en memoria. Modificar una copia no afecta el array original.
¿Te gustaría algún ejemplo más o más detalles sobre estos temas?
