WorksheetsNumpy, Pandas, Matplotlib y Seaborn Final Test
Total questions: 20
Worksheet time: 19mins
¿Cuál de las siguientes sentencias sobre los NumPy arrays y las listas de Python es correcta?
NumPy proporciona operaciones vectoriales y matriciales, dentro de otras herramientas para el cálculo numérico.
Las listas no soportan operaciones vectorizadas (suma, multiplicación), pero son eficientes contenedores de uso general. Permiten la eliminación, inserción, concatenación, adición, etc.
Todas son correctas.
NumPy es una librería muy eficiente (gracias a que su núcleo es un código en C muy bien optimizado).
Dado el siguiente NumPy array:
my_arr = np.array([ [[1,2,3],[4,5,6]] , [[1,2,3],[4,5,6]],
[[1,2,3], [4,5,6]] , [[1,2,3], [4,5,6]] ])
¿Con cuál de los siguientes comandos se accede a todos los [4,5,6] (es decir a todas las segundas componentes)?
my_arr[0:4, 1]
my_arr[0:4][1]
my_arr[1:4, 2]
my_arr[0:3][1]
Nota: leer toda la consigna antes arrastrar los mosaicos.
Dado el siguiente Numpy array,
arr = np.array( [ [1,2,3,4] , [5,6,7,8] , [9,10,11,12] ] )
rellene los outputs del siguiente código:
In : arr.ndim ------> Out : (a)
In : arr.shape ------> Out : ( (b) , (c) )
In : arr.size ------> Out : (d)
In : len(arr) ------> Out : (e)
Dado el siguiente NumPy array : arr = np.arange(100,112)
¿Con qué único par de sentencias puedo cambiar las dimensiones de arr sin cambiar los valores del mismo?
arr.reshape(4,3)
arr.reshape(12,2)
arr.reshape(4,3)
arr.reshape(6,1,1)
arr.reshape(4,4)
arr.reshape(1,12)
arr.reshape(4,3)
arr.reshape(6,2,1)
¿Con qué dos funciones se colapsa un NumPy array de una dimensión cualquiera a un array de una sola dimensión?
onedimension
y flat
revel y flat
revel y flatten
nodimension y flatten
Dado los siguientes NumPy arrays:
arr1 = np.array([ [0,1] , [4,5] ])
arr2 = np.array([ [2,3] , [6,7]])
Si aplicamos la función (a) los arreglos se concatenan horizontalmente por filas devolviendo el array
array([ [0,1,2,3] , [4,5,6,7] ]);
mientras que si aplico la función (b) , la concatenación es vertical y el output es
array([ [0,1] , [4,5] , [2,3] , [6,7] ]).
¿De qué manera se accede únicamente a las n-ésima y m-ésima columnas de un dataframe? Seleccione las tres (3) respuestas correctas.
df.[df.columns[n,m]]
df.iloc[:,[n,m]]
df.loc[:,['ncol_name','mcol_name']]
df.iloc[:,n:m]
df[['ncol_name','mcol_name']]
Dado el siguiente dataframe:
df = pd.DataFrame({'reg':["EUR","EUR","EUR","US","US","JP","JP"],
'sales':[153,168,162,256,285,145,151],
'year':[2018,2019,2020,2018,2019,2018,2019]})
¿Es posible usar la columna 'reg' como multi-índice de df de modo que al ejecutar df.loc['EUR'] devuelva todas las entradas con índice 'EUR' (ídem para 'US o 'JP')?
No, los multi-índices no están permitidos en Pandas
Sí, pero únicamente asignando los índices al crear df. Una vez creado, los índices no pueden modificarse.
Sí, ejecutando df = df.index(["reg"])
Sí, ejecutando df = df.set_index(["reg"])
¿Cuántas filas se muestran al ejecutar la función df.head(), asumiendo que el dataframe df contiene 100 registros?
1
5
10
100
¿Qué función nos permite conocer el número de filas de un Dataframe llamado df?
len(df)
length(df)
rows(df)
size(df)
Supongamos que queremos concatenar las primeras y las últimas filas de un Dataframe llamado df. Para ello, extraemos los datos de interés:
first = df[ ['col_1', 'col_2'] ].head(5)
last = df[ ['col_1', 'col_2', 'col_3', 'col_4'] ].tail(4)
y luego, los concatenamos ejecutando:
pd.concat([first_positions, last_positions])
El procedimiento es incorrecto. No es posible concatenar dataframes con distinto número de columnas
El procedimiento es incorrecto. No es posible concatenar dataframes con distinto número de filas
El procedimiento es correcto. Notar que ante la ausencia de datos en el subdataframe first (en las columnas 'col_3' y 'col_4'), al concatenar, los valores faltantes se completan con None
El procedimiento es correcto. Notar que ante la ausencia de datos en el subdataframe first (en las columnas 'col_3' y 'col_4'), al concatenar, los valores faltantes se completan con NaN
¿Con qué método se muestra la información de un dataframe (df) que se muestra en la figura?
df.describe()
df.info()
df.resume()
df.summary()
Indique las formas en que puede importarse la colección de funciones pyplot (más de una puede ser correcta):
import pyplot as plt
from matplotlib import pyplot as plt
import pyplot.matplotlib as plt
import matplotlib.pyplot as plt
from pyplot import matplotlib as plt
Si se mide el voltaje de un circuito a lo largo del tiempo, ¿Cuál es el código que guarda en mi ordenador el plot de la figura?
t = np.arange(0.0, 2.01, 0.01)
plt.plot(t, np.sin(2*np.pi*t))
plt.ylabel('voltage (mV)')
plt.xlabel('time (s)')
plt.grid(True)
plt.savefig("my_figure.png")
plt.show()
t = np.arange(0.0, 2.01, 0.01)
plt.plot(t, np.cos(2*np.pi*t))
plt.xlabel('time (s)')
plt.ylabel('voltage (mV)')
plt.grid(True)
plt.show()
t = np.arange(0.0, 2.01, 0.01)
plt.plot(t, np.arcsin(2*np.pi*t))
plt.ylabel('voltage (mV)')
plt.xlabel('time (s)')
plt.savefig("my_figure.png")
plt.show()
t = np.arange(0.0, 2.01, 0.01)
plt.plot(t, np.arccos(2*np.pi*t))
plt.labelx('time (s)')
plt.labely('voltage (mV)')
plt.grid(True)
plt.savefig("my_figure.png")
plt.show()
Supongamos que tenemos 3 NumPy arrays de distinta longitud. ¿Qué sucede si ejecutamos las siguientes líneas?
plt . plot(values_1)
plt . plot(values_2)
plt . plot(values_3)
plt . show()
donde len(values_1) = len(values_2) = len(values_3)
Devuelve error porque no se pueden plotear arrays de distintas longitudes.
Se plotean los valores de values_1 (en el eje y) contra los valores de values_2 (en el eje x). El array values_3 no se usa ya que no hay un values_4 contra quien plotear esos valores. Sólo aparecerá una curva (values_1 v.s. values_2), pero no se producirá error alguno.
Se plotean los valores de los tres arrays (en el eje y) en tres curvas diferentes contra la indexación de los arrays (en el eje x). Como las longitudes de los arrays son diferentes, cuanto más corto el array, más corta la curva. Sólo se plotean los valores disponibles para cada array.
Se plotean los valores de los tres arrays (en el eje y) en tres curvas diferentes contra la indexación de los arrays (en el eje x). Ante los valores faltantes, Python extrapola las curvas existentes para que las 3 curvas empiecen y terminen juntas (es decir que no haya datos faltantes y las 3 curvas empiecen y terminen en los mismos valores de x).
Encuentre la coincidencia entre los gráficos y sus códigos correspondientes:
(data contiene los datos necesarios para producir la figura)
plt.scatter(data)
plt.pie(data)
plt.hist(data)
plt.bar(data)
plt.plot(data)
Marque la sentencia correcta:
Seaborn es una librería para visualizar datos que provee una interfaz de alto nivel que funciona por encima de la librería matplotlib.
Seaborn y matplotlib son dos librerías distintas para crear y personalizar tipos de gráficos que funcionan independientemente una de otra. Cada librería dispone de diferentes gráficas y dependiendo el tipo de análisis conviene más una u otra.
Matplotlib es una librería para visualizar datos que provee una interfaz de alto nivel que funciona por encima de la librería seaborn.
Ninguna es correcta.
Marque la característica que describe a la librería seaborn:
Destinada a encontrar relaciones entre múltiples variables en un conjunto de datos.
Gran soporte dedicado a las variables categóricas para mostrar sus estadísticas.
Capacidad para comparar diferentes tipos de distribuciones.
Posibilidad de obtener las múltiples facetas de una variable.
Todas son correctas.
Dado el siguiente heatmap, donde el color gris claro en la escala de color es 1 y el color salmón (o rosa anaranjado) es -0.2:
Los elementos de la diagonal tienen un valor igual a (a) .
Los valores por encima de la diagonal son:
X12 = (b) ;
X13 = (c) ;
X23 = (d) .
Finalmente, los valores por debajo de la diagonal son iguales a los de encima respetando la simetría Xij = Xji.
Encuentre las coincidencias entre los plots de seaborn y sus respectivos códigos:
sns.lmplot(data)
sns.violinplot(data)
sns.boxplot(data)
sns.heatmap(data)
sns.countplot(data)
