import numpy as np

# crear un arreglo
arr = np.arange(0,11)

# desplegar el arreglo
arr

"""
Explanation: <a href='http://www.pieriandata.com'> <img src='../Pierian_Data_Logo.png' /></a>

Seleccion e indices en Numpy
End of explanation
"""


#obtener el valor del indice 8
arr[8]

#obtener los valores de un rango
arr[1:5]

#obtener los valores de otro rango
arr[0:5]

"""
Explanation: seleccion utilizando los corchetes
se utilizan los indices muy similar a las listas
End of explanation
"""


# 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

"""
Explanation: Reemplazar valores
End of explanation
"""


# desplegar arreglo
arr

"""
Explanation: Tomar en cuenta que los cambios tambien se realizaron al arreglo original
End of explanation
"""


# para obtener una copia se debe hacer explicitamente
arr_copy = arr.copy()

# desplegar el arreglo copia
arr_copy

"""
Explanation: La información no es copiada para evitar problemas de memoria
End of explanation
"""


# 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 = arr2d.shape[1]

"""
Explanation: 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]
End of explanation
"""


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]

"""
Explanation: Seleccion
End of explanation
"""


