mario
Numpy
El array es similar a una lista, con el cual se puede acceder a un elemento mediante su índice. La ventaja de Numpy frente a las listas es que el procesamiento de los array es mucho más rápido que las listas, lo cual lo hace ideal para el procesamiento de vectores y el de matrices de grandes dimensiones.
lista = [1,2,3,4,5,6,7,8,9]
arr = np.array(lista)
Con arr.dtype, se puede saber el tipo de dato, los cuales pueden ser los siguientes:
- Int8
- Int64
- Float64
- Bool
- String
arr = arr.astype(np.bool), con este comando convertimos un tipo de dato.
scalar.ndim, con este comando sabemos la dimensión del vector
np.expand_dims(np.array([1, 2, 3]), axis = 0), expandimos la dimensión
np.squeeze(vector), comprime la dimensión a una correcta.
Podemos crear un array de muchas maneras
- np.arange(0,20,2)
- np.zeros((10,5))
- np.ones(3)
- np.linspace(0, 10 , 10)
- np.eye(4)
- np.random.rand(4,4)
arr.shape, indica la forma del arreglo
arr.reshape(1,6), transforma el arreglo
Podemos aplicar múltiples funciones a los array
- arr.max()
- arr.argmax()
- arr.min()
- arr.argmin()
- arr.ptp()
- arr.sort()
- np.percentile(arr, 50)
- np.median(arr)
- np.std(arr)
- np.var(arr)
- np.mean(arr)
- np.concatenate((a,b), axis = 0)
- b.T
arr_copy = arr.copy(), creamos una copia del original para no dañar el original.
Podemos aplicar condiciones a nuestros arrays donde nos retornara solo los valores que la cumplan por ejemplo: arr[(arr>5) & (arr<9)]
Podemos realizar operaciones entre vectores, escalares y matrices, como por ejemplo: matriz – matriz2 o el producto punto entre 2 matrices: np.matmul (matriz, matriz2.T)
Pandas
Maneja 2 objetos
- Series
- DataFrame
SERIE:
psg_players = pd.Series([‘Navas’,‘Mbappe’,‘Neymar’,‘Messi’], index=[1,7,10,30])
dict = {‘Jugador’:[‘Navas’,‘Mbappe’,‘Neymar’,‘Messi’],
‘Altura’:[183.0, 170.0, 170.0, 163.0],
‘Goles’:[2, 200, 150, 500]}
DATAFRAME: df_players = pd.DataFrame(dict, index=[1,7,10,30])
Leer archivos CSV
pd.read_csv(‘/content/bestsellers-with-categories_e591527f-ae45-4fa5-b0d1-d50142128fa6.csv’, sep= ‘,’)
Leer archivos JSON
pd.read_json(‘/work/DataFrames/hpcharactersdataraw.json’)
.loc y .iloc
.loc: Filtra segun label, en este ejemplo muestra los datos de la fila 0 a la 4
df_books.loc[0:4]
df_books.loc[0:4, [‘Name’, ‘Author’]] De esta manera filtramos por filas y columnas
.iloc: Filtra segun indice
df_books.iloc[1,3] Muestra el dato alojado en la fila 1 columna 3
Eliminar datos del df
df_books.drop(‘Genre’, axis=1).head()Elimina la columna de salida pero no el df
del df_books[‘Price’] Elimina la columna del df
df_books.drop(0, axis=0)Elimina filas del df
Agregar una nueva columna
df_books[‘Nueva_columna’] = np.nan, en este caso con valores nan
df_books[‘Rango’] = data, data contiene una lista de números
Agregar una fila
df_books.append(lista)
Manejo de datos nulos
df.isnull() Identifica valores nulos
df.isnull()*1 Identifica valores nulos con 1
df.fillna(‘Missing’) Sustituye valor por un string
df.fillna(df.mean()) Sustituye valor nulo por la media
df.interpolate() Sustituye valor por el valor que debería seguir
df.dropna() Elimina valores nulos
Filtrado por condición
Entrega los valores que cumplen la condicion
df_books[df_books[‘Year’] > 2016]
Funciones principales de pandas
df_books.head(2) Muestra los 2 primeros registros
df_books.info() Muestra la principal info del df
df_books.describe() Muestra los principales estadisticos del df
df_books.tail() Muestra los ultimos 5 digitos
df_books.memory_usage(deep=True) Uso de la memoria de cada columna
df_books[‘Author’].value_counts() Cuantos datos de algo especifico
df_books.drop_duplicates() Eliminar registros duplicados
df_books.sort_values(‘Year’) Ordenar segun registros de la columna
df_books.sort_values(‘Year’, ascending=False)
Groupby
Agrupar por Author y mostrar el conteo de los datos de las demás columnas
df_books.groupby(‘Author’).count(), los agrupa por autor y luego cuenta
df_books.groupby(‘Author’).median(), los agrupa por autor y saca median
df_books.groupby(‘Author’).agg([‘min’,‘max’]), con agg podemos aplicar multiples funciones.
Merge y Concat
Concat: Pega un df uno al lado del otro
pd.concat([df1,df2])
Merge: Une dos df
izq.merge(der), de izquierda a derecha
Join
Hace exactamente lo mismo pero va por los indices, no por columnas
izq.join(der)
Pivot y Melt
Dos funciones que sirven para cambiar la estructura de nuestro DataFrame de acuerdo a nuestras necesidades.
Pivot, básicamente, transforma los valores de determinadas columnas o filas en los índices de un nuevo DataFrame, y la intersección de estos es el valor resultante.
df_books.pivot_table(index=‘Author’,columns=‘Genre’,values=‘User Rating’)
Como resultado, los valores de Author pasan a formar el índice por fila y los valores de Genre pasan a formar parte de los índices por columna, y el User Rating se mantiene como valor.
El método melt toma las columnas del DataFrame y las pasa a filas, con dos nuevas columnas para especificar la antigua columna y el valor que traía.
df_books[[‘Name’,‘Genre’]].head(5).melt()
Apply
Apply Es un comando muy poderoso que nos deja aplicar funciones a nuestro DataFrame
def two_times(value):
return value * 2
df_books[‘User Rating’].apply(two_times)