Fundamentos de Numpy en Ciencia de Datos

Los tipos enteros en C representan etiuqetas de ubicaciones de memoria con bytes codificados como valores numéricos. En Python, los enteros son punteros a objetos que contienen información completa sobre el valor, inlcuyendo representaciones binarias.

Los elementos de una lista en Python son referencias completas a objetos independientes.

Creación de arreglos en Numpy


import numpy as np

# Arreglo de 10 elementos cero
arr_ceros = np.zeros(10, dtype=int)

# Matriz 3x5 con valores uno flotante
mat_unos = np.ones((3,5), dtype=float)

# Matriz 3x5 con valor fijo
mat_fijo = np.full((3,5), 3.14)

# Secuencia lineal
secuencia = np.arange(0, 20, 2)

# Distribución uniforme
distribucion = np.linspace(0, 1, 5)

# Matriz aleatoria uniforme
mat_aleatoria = np.random.random((3,3))

# Distribución normal estándar
distribucion_normal = np.random.normal(0, 1, (3,3))

# Matriz entera aleatoria
mat_enteros = np.random.randint(0, 10, (3,3))

# Matriz identidad
mat_identidad = np.eye(3,3)

# Arreglo no inicializado
arreglo_nuevo = np.empty(3)

Tipos de datos estándar

Tipo Descripción
bool_ Valor booleano, almacenado en un byte
int8/int16/int32/int64 Enteros con rango ±2ⁿ (menos 1 para positivos)
uint8/uint16/uint32/uint64 Enteros sin signo desde 0 hasta 2ⁿ-1
float16/float32/float64 Precisión semidoble/doble con bits para exponente y mantisa
complex64/complex128 Números complejos con componentes flotantes

Propiedades de los arreglos


datos = np.random.randint(10, size=(3,4))
print("Dimensiones:", datos.ndim)
print("Forma:", datos.shape)
print("Tamaño total:", datos.size)
print("Tipo de dato:", datos.dtype)

Indexación


arreglo = np.arange(10)
print(arreglo[2]) # Índice 2
print(arreglo[-1]) # Índice final

matriz = np.random.randint(0,10,(3,4))
print(matriz[1,2]) # Fila 1, columna 2
matriz[1,2] = 4 # Modificación de valor

Rebanado


x = np.arange(10)
print(x[:5]) # Primeros 5 elementos
print(x[5:]) # Últimos 5 elementos
print(x[5:10:2]) # Intervalo con paso 2
print(x[::-1]) # Inversión completa
print(x[5::-2]) # Inversión desde índice 5

Arreglos multidimentionales


matriz = np.random.randint(0,13,(3,4))
print(matriz[:2, :3]) # Filas 0-1, columnas 0-2
print(matriz[:, ::2]) # Todas las filas, columnas cada 2
print(matriz[::-1, ::-1]) # Inversión completa

Redimensionamiento


x = np.arange(1,10)
print(x.reshape(3,3)) # Formato 3x3

y = np.array([1,2,3])
print(y.reshape(1,3)) # Vector fila
print(y[np.newaxis, :]) # Uso de newaxis
print(y.reshape(3,1)) # Vector columna

Concatenación y partición

Concatenación


a = np.array([1,2,3])
b = np.array([3,2,1])
print(np.concatenate([a,b])) # Concatenación 1D

c = np.array([[1,2,3],[4,5,6]])
print(np.concatenate([c,c], axis=1)) # Concatenación 2D
print(np.hstack([c,c])) # Concatenación horizontal
print(np.vstack([c,c])) # Concatenación vertical

Partición


x = np.arange(12)
part1, part2, part3 = np.split(x, [3,5])
print(part1, part2, part3)

matriz = np.arange(16).reshape((4,4))
superior, inferior = np.vsplit(matriz, [2])
print(superior)
print(inferior)

izquierda, derecha = np.hsplit(matriz, [2])
print(izquierda)
print(derecha)

Etiquetas: NumPy ciencia-de-datos manipulación-de-arreglos procesamiento-numerico biblioteca-python

Publicado el 9-14 10:36