<jupyter_start><jupyter_text>Numpy GitHub repository: https://github.com/jorgemauricio/curso_itesm Instructor: <NAME><jupyter_code># librerías
import numpy as np<jupyter_output><empty_output><jupyter_text>Crear Numpy Arrays De una lista de pythonCreamos el arreglo directamente de una lista o listas de python<jupyter_code>my_list = [1,2,3]
my_list
np.array(my_list)
my_matrix = [[1,2,3],[4,5,6],[7,8,9]]
my_matrix<jupyter_output><empty_output><jupyter_text>Métodos arange<jupyter_code>np.arange(0,10)
np.arange(0,11,2)<jupyter_output><empty_output><jupyter_text>ceros y unosGenerar arreglos de ceros y unos<jupyter_code>np.zeros(3)
np.zeros((5,5))
np.ones(3)
np.ones((3,3))<jupyter_output><empty_output><jupyter_text>linspaceGenerar un arreglo especificando un intervalo<jupyter_code>np.linspace(0,10,3)
np.linspace(0,10,50)<jupyter_output><empty_output><jupyter_text>eyeGenerar matrices de identidad<jupyter_code>np.eye(4)<jupyter_output><empty_output><jupyter_text>Random randGenerar un arreglo con una forma determinada de numeros con una distribución uniforme [0,1]<jupyter_code>np.random.rand(2)
np.random.rand(5,5)<jupyter_output><empty_output><jupyter_text>randnGenerar un arreglo con una distribucion estandar a diferencia de rand que es uniforme<jupyter_code>np.random.randn(2)
np.random.randn(5,5)<jupyter_output><empty_output><jupyter_text>randintGenerar numeros aleatorios en un rango determinado<jupyter_code>np.random.randint(1,100)
np.random.randint(1,100,10)<jupyter_output><empty_output><jupyter_text>Métodos y atributos de arreglos<jupyter_code>arr = np.arange(25)
ranarr = np.random.randint(0,50,10)
arr
ranarr<jupyter_output><empty_output><jupyter_text>ReshapeRegresa el mismo arreglo pero en diferente forma<jupyter_code>arr.reshape(5,5)<jupyter_output><empty_output><jupyter_text>max, min, argmax, argminMetodos para encontrar máximos y mínimos de los valores y sus indices<jupyter_code>ranarr
ranarr.max()
ranarr.argmax()
ranarr.min()
ranarr.argmin()<jupyter_output><empty_output><jupyter_text>ShapeAtributo para desplegar la forma que tienen el arreglo<jupyter_code># Vector
arr.shape
# Tomar en cuenta que se implementan dos corchetes
arr.reshape(1,25)
arr.reshape(1,25).shape
arr.reshape(25,1)
arr.reshape(25,1).shape<jupyter_output><empty_output><jupyter_text>dtypeDespliega el tipo de dato de los objetos del arreglo<jupyter_code>arr.dtype<jupyter_output><empty_output><jupyter_text>Selección e indices en Numpy<jupyter_code># crear un arreglo
arr = np.arange(0,11)
# desplegar el arreglo
arr<jupyter_output><empty_output><jupyter_text>Selección utilizando corchetes<jupyter_code># obtener el valor del indice 8
arr[8]
# obtener los valores de un rango
arr[1:5]
#obtener los valores de otro rango
arr[2:6]<jupyter_output><empty_output><jupyter_text>Reemplazar valores<jupyter_code># reemplazar valores en un rango determinado
arr[0:5]=100

# desplegar el arreglo

arr
#  Generar nuevamente el arreglo
arr = np.arange(0,11)

# desplegar
arr
# corte de un arreglo
slice_of_arr = arr[0:6]

# desplegar el corte
slice_of_arr
# cambiar valores del corte
slice_of_arr[:]=99

# desplegar los valores del corte
slice_of_arr
# desplegar arreglo
arr
# para obtener una copia se debe hacer explicitamente
arr_copy = arr.copy()

# desplegar el arreglo copia
arr_copy<jupyter_output><empty_output><jupyter_text>Indices en un arreglo 2D (matrices)La forma general de un arreglo 2d es la siguiente **arr_2d[row][col]** o **arr_2d[row,col]**<jupyter_code># generar un arreglo 2D
arr_2d = np.array(([5,10,15],[20,25,30],[35,40,45]))

#Show
arr_2d
# indices de filas
arr_2d[1]

# Formato es arr_2d[row][col] o arr_2d[row,col]

# Seleccionar un solo elemento
arr_2d[1][0]
# Seleccionar un solo elemento
arr_2d[1,0]
# Cortes en 2D

# forma (2,2) desde la esquina superior derecha
arr_2d[:2,1:]
#forma desde la ultima fila
arr_2d[2]
# forma desde la ultima fila
arr_2d[2,:]
# longitud de un arreglo
arr_length = arr_2d.shape[1]

arr_length<jupyter_output><empty_output><jupyter_text>Selección<jupyter_code>arr = np.arange(1,11)
arr
arr > 4
bool_arr = arr>4
bool_arr
arr[bool_arr]
arr[arr>2]
x = 2
arr[arr>x]<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11170084439083233, 'fraction_numerical': 0.03570566948130278, 'mean_word_length': 8.575057736720554, 'pattern_counts': {'":': 0, '<': 78, '<?xml version=': 0, '>': 82, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '19', 'dir': 'jupyter-structured-clean-dedup', 'id': '6203', 'license': 'MIT', 'n_tokens_mistral': 1787, 'n_tokens_neox': 1743, 'n_words': 337, 'path': '02_Intro_Numpy.ipynb', 'repo_name': 'jorgemauricio/curso_itesm', 'size': '4153'}