Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Numpy, Pandas, Matplotlib y Seaborn Final Test

Total questions: 20

Worksheet time: 19mins

Name
Class
Date
1.

¿Cuál de las siguientes sentencias sobre los NumPy arrays y las listas de Python es correcta?

a)

NumPy proporciona operaciones vectoriales y matriciales, dentro de otras herramientas para el cálculo numérico.

b)

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.

c)

Todas son correctas.

d)

NumPy es una librería muy eficiente (gracias a que su núcleo es un código en C muy bien optimizado).

2.

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)?

a)

my_arr[0:4, 1]

b)

my_arr[0:4][1]

c)

my_arr[1:4, 2]

d)

my_arr[0:3][1]

3.

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)  

Choose from the below words
2
3
4
12
4.

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?

a)

arr.reshape(4,3)

arr.reshape(12,2)

b)

arr.reshape(4,3)

arr.reshape(6,1,1)

c)

arr.reshape(4,4)

arr.reshape(1,12)

d)

arr.reshape(4,3)

arr.reshape(6,2,1)

5.

¿Con qué dos funciones se colapsa un NumPy array de una dimensión cualquiera a un array de una sola dimensión?

a)

onedimension

y flat

b)

revel y flat

c)

revel y flatten

d)

nodimension y flatten

6.

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] ]).

Choose from the below words
np.hstack((arr1, arr2))
np.concatenate((arr1, arr2))
np.concatenate((arr1, arr2), axis=2)
np.append(arr1, arr2)
np.extend(arr1, arr2)
np.insert(arr1,arr2)
7.

¿De qué manera se accede únicamente a las n-ésima y m-ésima columnas de un dataframe? Seleccione las tres (3) respuestas correctas.

a)

df.[df.columns[n,m]]

b)

df.iloc[:,[n,m]]

c)

df.loc[:,['ncol_name','mcol_name']]

d)

df.iloc[:,n:m]

e)

df[['ncol_name','mcol_name']]

8.

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')?

a)

No, los multi-índices no están permitidos en Pandas

b)

Sí, pero únicamente asignando los índices al crear df. Una vez creado, los índices no pueden modificarse.

c)

Sí, ejecutando df = df.index(["reg"])

d)

Sí, ejecutando df = df.set_index(["reg"])

9.

¿Cuántas filas se muestran al ejecutar la función df.head(), asumiendo que el dataframe df contiene 100 registros?

a)

1

b)

5

c)

10

d)

100

10.

¿Qué función nos permite conocer el número de filas de un Dataframe llamado df?

a)

len(df)

b)

length(df)

c)

rows(df)

d)

size(df)

11.

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])

a)

El procedimiento es incorrecto. No es posible concatenar dataframes con distinto número de columnas

b)

El procedimiento es incorrecto. No es posible concatenar dataframes con distinto número de filas

c)

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

d)

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

12.

¿Con qué método se muestra la información de un dataframe (df) que se muestra en la figura?

a)

df.describe()

b)

df.info()

c)

df.resume()

d)

df.summary()

13.

Indique las formas en que puede importarse la colección de funciones pyplot (más de una puede ser correcta):

a)

import pyplot as plt

b)

from matplotlib import pyplot as plt

c)

import pyplot.matplotlib as plt

d)

import matplotlib.pyplot as plt

e)

from pyplot import matplotlib as plt

14.

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?

a)

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()

b)

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()

c)

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()

d)

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()

15.

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) ≠\ne  len(values_2) ≠\ne   len(values_3)

a)

Devuelve error porque no se pueden plotear arrays de distintas longitudes.

b)

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.

c)

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.

d)

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).

16.

Encuentre la coincidencia entre los gráficos y sus códigos correspondientes:

(data contiene los datos necesarios para producir la figura)

a)
1.

plt.scatter(data)

b)
2.

plt.pie(data)

c)
3.

plt.hist(data)

d)
4.

plt.bar(data)

e)
5.

plt.plot(data)

17.

Marque la sentencia correcta:

a)

Seaborn es una librería para visualizar datos que provee una interfaz de alto nivel que funciona por encima de la librería matplotlib.

b)

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.

c)

Matplotlib es una librería para visualizar datos que provee una interfaz de alto nivel que funciona por encima de la librería seaborn.

d)

Ninguna es correcta.

18.

Marque la característica que describe a la librería seaborn:

a)

Destinada a encontrar relaciones entre múltiples variables en un conjunto de datos.

b)

Gran soporte dedicado a las variables categóricas para mostrar sus estadísticas.

c)

Capacidad para comparar diferentes tipos de distribuciones.

d)

Posibilidad de obtener las múltiples facetas de una variable.

e)

Todas son correctas.

19.

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.

Choose from the below words
1
-0.19
0.77
0.013
20.

Encuentre las coincidencias entre los plots de seaborn y sus respectivos códigos:

a)
1.

sns.lmplot(data)

b)
2.

sns.violinplot(data)

c)
3.

sns.boxplot(data)

d)
4.

sns.heatmap(data)

e)
5.

sns.countplot(data)