programmer

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)