Ir al contenido principal

Las 20 mejores preguntas de entrevista sobre NumPy: de básico a avanzado

Prepárate para tu próxima entrevista de ciencia de datos con preguntas esenciales de NumPy, de básico a avanzado. Perfectas para afianzar tus habilidades y ganar confianza.
Actualizado 31 ago 2026  · 9 min leer

Explorar con IA

ChatGPTClaudePerplexity

NumPy es un pilar del conjunto de herramientas de cualquier data scientist. Permite procesar datos de forma eficiente en Python, incluso a gran escala.

Su conjunto de utilidades —cálculos elemento a elemento, multiplicación de matrices y vectorización— lo convierten en la opción preferida para realizar cálculos complejos en Python. Por eso, es habitual que aparezca en entrevistas. Repasa posibles preguntas con este artículo y llega preparado. 

Además, explora otros recursos en DataCamp para practicar NumPy de forma práctica.

Preguntas básicas sobre NumPy

Usa estas preguntas iniciales para comprobar tu dominio de los fundamentos de NumPy. Son un buen calentamiento para asegurarte de que conoces su funcionalidad y su propósito.

NumPy es un paquete de Python con muchas partes escritas en C/C++ por motivos de rendimiento. Su objetivo principal es hacer que el cálculo con grandes arrays sea más rápido y sencillo en Python.  Su funcionalidad principal es la siguiente:

  1. Ofrece soporte para arrays y matrices grandes y multidimensionales, esenciales para manejar conjuntos de datos voluminosos.
  2. Incluye una amplia colección de funciones matemáticas para operar de forma eficiente sobre estos arrays, lo que permite cálculos rápidos en grandes volúmenes de datos.
  3. Las operaciones vectorizadas de NumPy permiten ejecutar de forma eficiente operaciones matemáticas complejas.
  4. Es la base de muchas otras librerías de datos como pandas, scikit-learn y SciPy, por lo que es una piedra angular del ecosistema de ciencia de datos en Python.
  5. Los arrays de NumPy son más eficientes en memoria que las listas de Python, algo crucial cuando trabajas con big data.

2. ¿Cómo creas un array 1D en NumPy?

¡Crear un array de NumPy es sencillísimo! Solo tienes que invocar el método array() para crear un objeto array. Entender cómo crear arrays 1D te permitirá construir arrays de NumPy de n dimensiones más complejos.

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

3. ¿Cuál es la diferencia entre una lista de Python y un array de NumPy?

Las principales diferencias entre las listas de Python y los arrays de NumPy son:

  1. Homogeneidad: los arrays de NumPy son homogéneos; todos los elementos deben ser del mismo tipo. Las listas de Python pueden contener elementos de distintos tipos.
  2. Eficiencia de memoria: los arrays de NumPy son más eficientes porque almacenan los datos en un bloque contiguo de memoria, a diferencia de las listas de Python, que almacenan punteros a objetos.
  3. Rendimiento: los arrays de NumPy admiten operaciones vectorizadas, por lo que son mucho más rápidos para cálculos numéricos. Las operaciones se realizan elemento a elemento sin necesidad de bucles explícitos.
  4. Funcionalidad: los arrays de NumPy incluyen un amplio abanico de operaciones y funciones matemáticas aplicables directamente al array, algo que no es posible con listas de Python.

4. ¿Cómo compruebas la forma y el tamaño de un array de NumPy?

Saber comprobar la forma (shape) de un array de NumPy es importante porque, durante el procesamiento, puedes tener un tamaño final esperado para el array de salida. 

Si el resultado no coincide con lo esperado, revisar el shape te ayudará a detectar y corregir el problema. Usa el atributo shape para obtener las dimensiones del array y size para el número total de elementos:

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)  # Output: (2, 3)
print(arr.size)   # Output: 6

5. ¿Cómo cambias la forma (reshape) de un array de NumPy?

Reformatear arrays es una operación habitual en el preprocesado de datos y la ingeniería de características. Es clave para adaptar los datos a los requisitos de entrada de distintos algoritmos o reorganizarlos para analizarlos. 

Puedes cambiar la forma de un array de NumPy con el método reshape() o con la función np.reshape(). Así se hace:

import numpy as np

# Usando el método reshape()
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = arr.reshape(2, 3)
print(reshaped_arr)
# Output:
# [[1 2 3]
#  [4 5 6]]

# Usando la función np.reshape()
arr = np.array([1, 2, 3, 4, 5, 6])
reshaped_arr = np.reshape(arr, (3, 2))
print(reshaped_arr)
# Output:
# [[1 2]
#  [3 4]
#  [5 6]]

Conviértete en un Científico ML

Mejora tus conocimientos de Python para convertirte en un científico del aprendizaje automático.
Empieza a Aprender Gratis

Preguntas intermedias sobre NumPy

Estas preguntas profundizan en el uso práctico de NumPy. Una vez que domines los arrays y su base, toca explorar su funcionalidad. En este nivel se espera que realices cálculos con NumPy.

6. ¿Cómo creas un array de ceros o de unos?

Crear arrays rellenos de ceros o de unos es habitual en muchas tareas de ciencia de datos: inicializar matrices, crear máscaras o estructurar datos temporales. 

Para ello en NumPy utiliza las funciones np.zeros() o np.ones():

import numpy as np

# Crear un array 3x4 de ceros
zeros_arr = np.zeros((3, 4))
print(zeros_arr)
# Output:
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

# Crear un array 2x2 de unos
ones_arr = np.ones((2, 2))
print(ones_arr)
# Output:
# [[1. 1.]
#  [1. 1.]]

7. ¿Qué es el broadcasting en NumPy?

El broadcasting es un comportamiento clave de NumPy que permite operar de forma eficiente con arrays de tamaños distintos. 

En pocas palabras, facilita operaciones aritméticas entre arrays de diferente tamaño garantizando que sus formas sean compatibles. NumPy replica automáticamente los arrays más pequeños sobre el más grande para que las formas encajen. 

Mira este ejemplo:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[1], [2], [3]])
print(a + b)
# Output:
# [[2 3 4]
#  [3 4 5]
#  [4 5 6]]

8. ¿Cómo calculas la media, la mediana y la desviación estándar de un array de NumPy?

La media, la mediana y la desviación estándar son estadísticas descriptivas clave para entender los datos. NumPy las calcula fácilmente con funciones específicas. 

Conocer estos cálculos mejora tu capacidad para aprovechar NumPy:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

# Media
mean_value = np.mean(arr)
print("Mean:", mean_value)  # Output: 3.0

# Mediana
median_value = np.median(arr)
print("Median:", median_value)  # Output: 3.0

# Desviación estándar
std_value = np.std(arr)
print("Standard deviation:", std_value)  # Output: 1.4142135623730951

9. ¿Cómo podemos usar NumPy para consultar rápidamente datos numéricos y actuar en función de una condición booleana?

Aunque solemos pensar en NumPy como una librería de cálculo, también tiene potentes capacidades para manipular datos. 

NumPy permite filtrar con indexación booleana y realizar operaciones según los resultados. El método where() es especialmente útil cuando queremos modificar datos en función de valores numéricos.

Imagina que tenemos un data frame de notas de examen llamado df y queremos categorizar al alumnado. Un np.where() sencillo sería:

df[‘student_cat’] = np.where(df[‘score’] > 80, ‘good’, ‘bad’)

Ten en cuenta que where() acepta hasta 3 entradas: 

  • La primera es la condición booleana
  • La segunda es el resultado si es verdadera
  • La tercera es el resultado si es falsa

10. ¿Cómo usarías NumPy para algo como el error cuadrático medio (MSE)?

La capacidad de NumPy para operar sobre arrays completos facilita la implementación de cálculos como el Mean Squared Error (MSE). 

Como realiza operaciones sencillas elemento a elemento, vectoriza el cálculo y ofrece una forma eficiente de obtener el MSE. 

Aquí tienes un ejemplo de implementación en NumPy:

# 1. Tenemos dos arrays: predicciones y etiquetas reales
# 2. Calculamos las diferencias al cuadrado y las sumamos
# 3. Dividimos por n, que es la longitud del array

n= len(labels)
error = (1/n) * np.sum(np.square(predictions - labels))

Preguntas avanzadas sobre NumPy

Ahora entramos en terreno avanzado. En este nivel se espera que utilices NumPy para resolver problemas más complejos.

11. ¿Cómo puedes calcular estadísticas móviles con NumPy, como una media móvil?

Las estadísticas móviles, como la media móvil, son muy importantes en ciencia de datos. La media móvil se usa a menudo para suavizar datos ruidosos, especialmente en series temporales. 

Una funcionalidad poco conocida de NumPy son los "strides". Una de sus aplicaciones es crear una vista de ventana deslizante del array. Con lib.stride_tricks.sliding_window_view() puedes generar subarrays fácilmente. 

Después, puedes resumir cada subarray —por ejemplo, calculando la media— para obtener una media móvil. Ejemplo:

import numpy as np

from numpy.lib.stride_tricks import sliding_window_view
x = np.arange(6)
v = sliding_window_view(x, 3)
# Esto crea v, un array con subarrays de longitud 3 que reflejan el tamaño de la ventana.

12. ¿Cómo realizas indexación avanzada para seleccionar elementos de un array multidimensional según una condición?

Aunque la indexación es una habilidad básica, aprovechar técnicas avanzadas permite particionar los datos con más precisión. 

Usando indexación por arrays de enteros y booleana, crear subconjuntos que cumplan criterios específicos resulta trivial.

import numpy as np

array = np.array([[10, 15, 20, 25],
                  [30, 35, 40, 45],
                  [50, 55, 60, 65]])
print(array)  # Output: 
# [[10 15 20 25]
#  [30 35 40 45]
#  [50 55 60 65]]

# Indexación booleana: seleccionar elementos mayores que 30
condition = array > 30
print(condition)  # Output:
# [[False False False False]
#  [False  True  True  True]
#  [ True  True  True  True]]

# Aplicar la condición para obtener los elementos que cumplen el criterio
filtered_elements = array[condition]
print(filtered_elements)  # Output: [35 40 45 50 55 60 65]

# Indexación por arrays de enteros: seleccionar elementos según índices de fila y columna
row_indices = np.array([0, 1, 2])
col_indices = np.array([1, 2, 3])
selected_elements = array[row_indices, col_indices]
print(selected_elements)  # Output: [15 40 65]

# Combinando indexación booleana y por enteros
# Seleccionar elementos del array donde el valor sea mayor que 30 y pertenezca a índices específicos
combined_condition = (array > 30) & ((row_indices[:, None] == np.arange(3)).any(axis=0))
filtered_selected_elements = array[combined_condition]
print(filtered_selected_elements)  # Output: [35 40 45 50 55 60 65]

13. ¿Cómo puedes usar NumPy para realizar álgebra lineal, como una descomposición matricial o resolver un sistema de ecuaciones lineales?

Realizar descomposición de matrices es vital cuando trabajas con grandes volúmenes de datos. Reducir los datos a sus componentes principales es un primer paso crítico para reducir la complejidad y el ruido. 

El módulo linalg de NumPy permite realizar álgebra lineal fácilmente para obtener los componentes principales. 

# La señal subyacente es una imagen modulada sinusoidalmente
img = lena() # Esto es de scipy.misc import lena
t = np.arange(100)
tiempo = np.sin(0.1*t)
true= tiempo[:,np.newaxis,np.newaxis] * img[np.newaxis,...]

# Añadimos algo de ruido
noisy = real + np.random.randn(*true.shape)*255

# Matriz (observaciones, características)
M = noisy.reshape(noisy.shape[0],-1)

# La descomposición en valores singulares (SVD) factoriza la matriz de datos de modo que:
#   M = U*S*V.T     (donde '*' es multiplicación matricial)
# * U y V son matrices singulares con vectores ortogonales de norma unitaria
# * S es una matriz diagonal con los valores singulares de M; con ellos podemos calcular los CP

# Obtener los resultados de la SVD de la matriz con ruido
U, s, Vt = np.linalg.svd(M, full_matrices=False)
# Transponemos V para obtener los vectores de CP
V = Vt.T

# Los CP ya están ordenados de mayor a menor según los valores singulares
# Si usamos todos los CP, podemos reconstruir la señal ruidosa perfectamente
S = np.diag(s)
Mhat = np.dot(U, np.dot(S, V.T))
print(“Using all PCs, MSE = %.6G" %(np.mean((M - Mhat)**2)))

14. ¿Cómo puedes optimizar el uso de memoria al trabajar con arrays grandes en NumPy?

Una funcionalidad poco utilizada de NumPy es memmap(). Permite almacenar arrays como un archivo y leer arrays más grandes de lo que cabría solo en memoria. Su principal ventaja es la lectura perezosa de datos, que reduce la memoria total necesaria y aun así permite evaluar todo el conjunto de datos. 

Usarla con cabeza facilita trabajar con datos grandes de forma más cómoda.

​​import numpy as np

# Crear un array grande y guardarlo en un archivo con memmap
filename = 'large_array.dat'
large_array_shape = (10000, 10000)
dtype = np.float32  # Especifica el tipo de datos del array

# Crear un objeto memmap con la forma y dtype deseados
large_array = np.memmap(filename, dtype=dtype, mode='w+', shape=large_array_shape)

# Inicializar el array con algunos valores (por ejemplo, números aleatorios)
large_array[:] = np.random.rand(*large_array_shape)

# Acceder a una parte pequeña del array sin cargarlo entero en memoria
sub_array = large_array[5000:5010, 5000:5010]
print(sub_array)  # Output: un array 10x10 con floats aleatorios

# Limpiar y asegurar que los cambios se escriben en disco
del large_array

15. ¿Cómo gestionas y manipulas arrays con valores faltantes o infinitos en NumPy?

Tratar con valores faltantes e infinitos es habitual. Primero, puedes usar isnan() o isinf() de NumPy para detectarlos. 

Si hay un problema sistemático, conviene revisar los pipelines; si no, podemos imputar esos valores. 

Aunque quizá no uses NumPy directamente para imputar, a menudo se combina con pandas y su fillna(). Por ejemplo, puedes usar mean() o median() de NumPy para rellenar valores erróneos rápidamente.

Preguntas de entrevista sobre NumPy para data scientists

Hasta ahora hemos cubierto preguntas generales sobre NumPy. Aunque también aplican a ciencia de datos, en esta sección reunimos preguntas específicas para data scientists.

16. ¿Existe una forma rápida y sencilla de aplicar funciones a cada fila y columna de un array 2D?

A veces necesitamos realizar cálculos personalizados para obtener información por fila o columna. Por suerte, apply_along_axis() de NumPy permite aplicar una función personalizada a lo largo de un eje del array. 

import numpy as np

# Crear un array 2D
data = np.array([
    [1, 2, 3, 4, 5],
    [10, 15, 20, 25, 30],
    [100, 200, 300, 400, 500]
])

# Definir una función para calcular el rango de un array 1D
def compute_range(arr):
    return np.max(arr) - np.min(arr)

# Aplicar compute_range a cada fila (axis=1)
ranges = np.apply_along_axis(compute_range, axis=1, arr=data)
print("Range of each row:", ranges)
# Output:
# Range of each row: [  4  20 400]

17. ¿Cómo puedes aprovechar NumPy para escalar y normalizar características de datasets para machine learning?

Normalizar los datos asegura un entrenamiento adecuado de los modelos. Sin normalización, la escala puede sesgar los resultados, especialmente en modelos basados en distancias. 

Podemos usar funciones de NumPy para escalar fácilmente. Aquí tienes un ejemplo de min-max scaling por columnas. Asegúrate de elegir el eje correcto al escalar.

import numpy as np

data = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
])

# Min-Max Scaling
min_vals = np.min(data, axis=0)
max_vals = np.max(data, axis=0)
scaled_data = (data - min_vals) / (max_vals - min_vals)
print("Scaled Data:\n", scaled_data)
# Output:
# Scaled Data:
# [[0.   0.   0.  ]
#  [0.5  0.5  0.5 ]
#  [1.   1.   1.  ]]

18. ¿Qué formas hay de ordenar e indexar fácilmente nuestros arrays de NumPy?

Aunque en DataFrame usamos sort_values(), hay casos en los que queremos conocer la posición de los valores ordenados. 

argsort() de NumPy devuelve las posiciones que ordenarían un array. Es útil, por ejemplo, cuando necesitamos indexar otros conjuntos de datos para alinearlos con el orden. Con las posiciones, podemos usar la salida de argsort() y mantener la coherencia entre datasets.

19. ¿Qué aspecto importante del generador de números aleatorios de NumPy se puede usar para hacerlo predecible y por qué?

Los generadores de números aleatorios en computación no son realmente aleatorios: parten de una semilla inicial. Como a menudo queremos probar y evaluar resultados de forma reproducible, debemos minimizar la aleatoriedad en el pipeline. 

Con random.seed() de NumPy podemos fijar la semilla de toda la canalización y obtener resultados consistentes. Así, podremos atribuir mejoras a cambios en el modelo y no al azar.

20. Describe cómo implementarías K-Means en NumPy.

En una entrevista pueden pedirte implementar algún algoritmo. El objetivo es demostrar que entiendes los fundamentos del modelo y de la librería. 

No necesitas memorizar cada línea del siguiente código, pero sí identificar los pasos y métodos clave. Asegúrate de haber leído sobre K-Means (y otros algoritmos básicos) y comprender cómo funciona.

import numpy as np

# Generar un dataset de ejemplo
np.random.seed(42)  # Para reproducibilidad
data = np.vstack([
    np.random.normal(loc=[1, 1], scale=0.5, size=(50, 2)),
    np.random.normal(loc=[5, 5], scale=0.5, size=(50, 2)),
    np.random.normal(loc=[9, 1], scale=0.5, size=(50, 2))
])
def k_means(X, k, max_iters=100, tol=1e-4):
    # Paso 1: inicializar centroides aleatoriamente
    num_samples, num_features = X.shape
    centroids = X[np.random.choice(num_samples, k, replace=False)]
    
    for i in range(max_iters):
        # Paso 2: asignar clusters
        distances = np.linalg.norm(X[:, np.newaxis] - centroids, axis=2)
        cluster_assignments = np.argmin(distances, axis=1)
        
        # Paso 3: actualizar centroides
        new_centroids = np.array([X[cluster_assignments == j].mean(axis=0) for j in range(k)])
        
        # Comprobar convergencia
        if np.all(np.linalg.norm(new_centroids - centroids, axis=1) < tol):
            break
        
        centroids = new_centroids
    
    return centroids, cluster_assignments

# Aplicar k-means
k = 3
centroids, cluster_assignments = k_means(data, k)

Conclusión

Reforzar tus conocimientos de entrevista con NumPy es un paso clave para triunfar en una carrera profesional en ciencia de datos

Empieza practicando y entendiendo los fundamentos y, después, pasa a implementaciones concretas. Cuanto más uses NumPy, mejor interiorizarás sus funciones. Prueba algunos cursos y tutoriales de DataCamp, como estos:

Desarrolla habilidades de aprendizaje automático

Eleva tus habilidades de aprendizaje automático al nivel de producción.

FAQs

¿Qué otros temas pueden tratarse en una entrevista de ciencia de datos?

Además de los conceptos clave de programación en Python, conviene familiarizarse con librerías como Matplotlib, scikit-learn y SciPy. Conocer estas herramientas puede darte ventaja en las entrevistas de ciencia de datos.

¿Cuáles son las claves que debo saber sobre NumPy?

Mantente al día con las últimas novedades de NumPy; conocer las nuevas funciones y cambios puede darte una ventaja clara al optar a roles de ciencia de datos.

¿Cuáles son aplicaciones habituales de NumPy?

NumPy es esencial para tareas con cálculos matriciales, como descenso de gradiente y operaciones en redes neuronales convolucionales, por lo que es muy aplicable en ciencia de datos y machine learning.

¿Cómo puedo aprender NumPy de forma efectiva?

Puedes aprender NumPy de forma rápida y eficaz con recursos de plataformas como DataCamp y, sobre todo, practicando. La experiencia práctica es la vía más efectiva para dominar NumPy.

¿Qué proyecto es buena idea para practicar NumPy?

Implementar un modelo de machine learning con NumPy es una gran forma de demostrar tus habilidades matemáticas y tu conocimiento de la librería. Empieza por un proyecto sencillo como k-means y progresa hacia tareas más complejas como el descenso de gradiente.


Tim Lu's photo
Author
Tim Lu
LinkedIn

Soy un científico de datos con experiencia en análisis espacial, aprendizaje automático y canalización de datos. He trabajado con GCP, Hadoop, Hive, Snowflake, Airflow y otros procesos de ciencia/ingeniería de datos.

Temas
Python
Ciencia de datos

¡Aprende más sobre Python y ciencia de datos con estos cursos!

Curso

Introducción a Python para desarrolladores

3 h
176K
Domina los fundamentos de la programación en Python. ¡No necesitas conocimientos previos!
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

Las 36 preguntas y respuestas más importantes sobre Python para entrevistas de trabajo en 2026

Preguntas esenciales sobre Python para entrevistas de trabajo con ejemplos para personas en busca de empleo, estudiantes de último año y profesionales de datos.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Data engineering interview q and a

blog

Las 39 preguntas y respuestas más importantes para entrevistas de ingeniería de datos en 2026

Triunfa en tu próxima entrevista con esta recopilación de preguntas y respuestas para entrevistas de ingenieros de datos, que te ayudará a prepararte para las diferentes etapas, desde la selección de RR. HH. hasta las evaluaciones técnicas en profundidad, incluidas preguntas sobre Python y SQL.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

28 preguntas principales de la entrevista a un científico de datos para todos los niveles

Explora las preguntas principales de la entrevista sobre ciencia de datos con respuestas para estudiantes de último curso y profesionales en busca de empleo.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

33 preguntas de entrevista sobre Azure: De básico a avanzado

Una recopilación de las preguntas más frecuentes en las entrevistas sobre Azure, adaptadas a todos los niveles de experiencia. Tanto si eres principiante, intermedio o avanzado, estas preguntas y respuestas te ayudarán a prepararte con confianza para tu próxima entrevista de trabajo relacionada con Azure.
Josep Ferrer's photo

Josep Ferrer

15 min

blog

Más de 30 preguntas de entrevista sobre Excel para todos los niveles

Una guía con las preguntas de entrevista sobre Excel más comunes para usuarios principiantes, intermedios y avanzados. Llega con seguridad a la parte técnica.
Chloe Lubin's photo

Chloe Lubin

15 min

Tutorial

21 herramientas esenciales de Python

Conozca las herramientas esenciales de Python para el desarrollo de software, raspado y desarrollo web, análisis y visualización de datos y aprendizaje automático.
Abid Ali Awan's photo

Abid Ali Awan

6 min

Ver MásVer Más