Introducción a NumPy para Python
Introducción a NumPy para Python
Numpy
1
[2]: #Primero abrimos la consola de jupiter y ponemos "pip install numpy"
#Segundo, importamos dentro del code
import numpy as np
Normalmente es mucho más rápido que hacerlo con listas y list comprehension en␣
↪Python puro.
"""
%time my_arr2 = my_arr * 2
[[ 2 71 0 34]
[ 2 171 -35 34]]
2
[11]: print([Link]([100,10,1])) # array a partir de una lista
#para el arange es (inicio, fin, salto) , como un rango normal
print([Link](2,10,2.1)) # array a partir de una secuencia(range) 1D
[100 10 1]
[2. 4.1 6.2 8.3]
print()
print()
3
[[9.88e-324 8.45e-322]
[ nan 1.68e-322]]]
[ 2 71 0 34]
[22]: #argmax() devuelve la posición del valor más grande del array.
#No devuelve el valor, sino dónde está.
print(numpy_array.argmax())
#[Link]() devuelve el valor máximo del array.
#Es equivalente a max() del python puro.
print([Link](numpy_array))
1
71
2
0
(array([0, 1, 3]),)
4
[29]: #[Link] crea un array numpy con valores fijos
#es 3D, 5(bloques), 4(filas), 2(columnas)
#En cristiano, 5 matrices; cada una tiene un tamaño de 4x2 y todas se
#llenan con el valor 2
my_ndarray = [Link]((5, 4,2), 2) # matrix 5x2x2
print(my_ndarray)
[[[2 2]
[2 2]
[2 2]
[2 2]]
[[2 2]
[2 2]
[2 2]
[2 2]]
[[2 2]
[2 2]
[2 2]
[2 2]]
[[2 2]
[2 2]
[2 2]
[2 2]]
[[2 2]
[2 2]
[2 2]
[2 2]]]
[30]: """
recordemos:
my_ndarray = [Link]((5, 4,2), 2)
"""
40
5
(5, 4, 2)
3
[ 2 71 0 34]
4
(4,)
1
print(my_ndarray)
print(my_ndarray.shape) #1 fila porque tiene doble corchete
print(my_ndarray.ndim) # 2D
"""
IMPORTANTE:
[[ 0 71 21 19]
[213 412 111 98]]
2
6
print(new_dims.ndim)#Sigue siendo 2D
[[ 0 71]
[ 21 19]
[213 412]
[111 98]]
2
print(x) #print
(3, 1)
[[100]
[ 10]
[ 1]]
[44]: #REDUCIR 1D
#creamos un array numpy con números del 0 al 8, siendo una matriz 3x3 2D
new_dims = [Link](9).reshape(3,3) #si hay 2 valores en el reshape se hace 2␣
↪dimensiones, 3 valores = 3 dimensiones y así
print(new_dims)
print()
#Flatten transforma el array en una dimensión independientemente a la dimensión␣
↪que tenga
print("Con flatten")
print(new_dims.flatten()) #Siempre convertirá en 1D
[[0 1 2]
[3 4 5]
[6 7 8]]
Con flatten
[0 1 2 3 4 5 6 7 8]
7
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
--------------------
[[ 0 1 2 3 4 5 6 7]
[ 8 9 10 11 12 13 14 15]]
new_dims = [Link](16).reshape(8,2)
print(new_dims)
#Cambia los ejes
#actualmente axe 0 son filas y axe 1 son col
#Con esto, axe 0 ahora serán col y axe 1 ahora serán filas
#Ahora es una matriz de 2 filas x 8 columnas
print("--------------------------")
print(new_dims.swapaxes(0,1))
[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]
[12 13]
[14 15]]
--------------------------
[[ 0 2 4 6 8 10 12 14]
[ 1 3 5 7 9 11 13 15]]
[53]: # Flip
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
8
[12 13 14 15]]
----------------------------------------
[[15 14 13 12]
[11 10 9 8]
[ 7 6 5 4]
[ 3 2 1 0]]
[55]: # ordenar
#usamos el sort como antes para ordenarlos
array1 = [Link]([10,2,9,17])
[Link]()
print(array1)
[ 2 9 10 17]
#Creamos 2 listas
a1 = [0,0,0,0,0,0]
a2 = [1,1,1,1,1,1]
#Horizontal Stack
#une arrays uno al lado del otro
print([Link]((a1,a2)))
print([Link]((a1,a2)).shape) #Es un array 1D, solo que más largo
print("-----------------------------------------")
#Vertical Stack
#Apila uno encima del otro
print([Link]((a1,a2))) #Convierte los arrays 1D en filas de una matriz 2D
print([Link]((a1,a2)).shape)
[0 0 0 0 0 0 1 1 1 1 1 1]
(12,)
-----------------------------------------
[[0 0 0 0 0 0]
[1 1 1 1 1 1]]
(2, 6)
"""
9
concatenate une arrays por el eje indicado:
axis=0 agrega filas, axis=1 agrega columnas.
"""
print("------------------------")
print([Link]((array1, array2), axis = 1))#Unimos arrays mediante␣
↪columnas
[[2 4]
[6 8]
[3 5]
[7 9]]
------------------------
[[2 4 3 5]
[6 8 7 9]]
ORIGINAL
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
--------------
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
--------------------
10
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]]), array([[12, 13, 14, 15]])]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
------------------------------
[array([[ 0, 1, 2],
[ 4, 5, 6],
[ 8, 9, 10],
[12, 13, 14]]), array([[ 3],
[ 7],
[11],
[15]])]
---------------------
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
[[ 0 1 2 3 4 5 6 7]
[ 8 9 10 11 12 13 14 15]
[16 17 18 19 20 21 22 23]
[24 25 26 27 28 29 30 31]
[32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47]
11
[48 49 50 51 52 53 54 55]
[56 57 58 59 60 61 62 63]]
-----------------------------
[array([[0, 1, 2, 3, 4, 5, 6, 7]]), array([[ 8, 9, 10, 11, 12, 13, 14, 15],
[16, 17, 18, 19, 20, 21, 22, 23]]), array([[24, 25, 26, 27, 28, 29, 30,
31],
[32, 33, 34, 35, 36, 37, 38, 39],
[40, 41, 42, 43, 44, 45, 46, 47],
[48, 49, 50, 51, 52, 53, 54, 55],
[56, 57, 58, 59, 60, 61, 62, 63]])]
----------------------------
[array([[ 0],
[ 8],
[16],
[24],
[32],
[40],
[48],
[56]]), array([[ 1, 2],
[ 9, 10],
[17, 18],
[25, 26],
[33, 34],
[41, 42],
[49, 50],
[57, 58]]), array([[ 3, 4, 5, 6, 7],
[11, 12, 13, 14, 15],
[19, 20, 21, 22, 23],
[27, 28, 29, 30, 31],
[35, 36, 37, 38, 39],
[43, 44, 45, 46, 47],
[51, 52, 53, 54, 55],
[59, 60, 61, 62, 63]])]
[10 11 12 13 14 15]
15
[10 11 12 13 14]
12
[78]: # bidimensional
#Es 2D
#Creamos un array del 0 al 15, 2D en matriz de 4 filas x 4 col
array = [Link](16).reshape(4,4)
print(array)
print("-----------------")
print(array[2, 2]) # índice 2 fila e índice 2 columna
print(array[3,2]) # fila 3 2 columna
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
-----------------
10
14
[81]: # multidimensional
[[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]]
[[18 19 20 21 22 23]
[24 25 26 27 28 29]
[30 31 32 33 34 35]]]
---------------
16
34
[[1 2 3]
[4 5 6]]
13
[86]: #Es lo mismo que el otro pero lo hace con C-row
row_major = [Link]([1, 2, 3, 4, 5, 6])
row_major = row_major.reshape(2,3,order='C') # by default, row major
print(row_major)
print("-------------------")
[[1 2 3]
[4 5 6]]
-------------------
[[1 3 5]
[2 4 6]]
Slice
[88]: # se puede hacer slice por fila o columna
#Creamos un array numpy de 0 al 80, 2D 9 filas x 9 col
array = [Link](81).reshape(9,9)
print(array)
print("-----------------------------------")
#Empiza por la fila uno y termina en la fila 2 (excluye la fila 3),
#empieza en la columna 2 hasta el final y va saltando cada 2
print(array[1:3, 2::2])
[[ 0 1 2 3 4 5 6 7 8]
[ 9 10 11 12 13 14 15 16 17]
[18 19 20 21 22 23 24 25 26]
[27 28 29 30 31 32 33 34 35]
[36 37 38 39 40 41 42 43 44]
[45 46 47 48 49 50 51 52 53]
[54 55 56 57 58 59 60 61 62]
[63 64 65 66 67 68 69 70 71]
[72 73 74 75 76 77 78 79 80]]
-----------------------------------
[[11 13 15 17]
[20 22 24 26]]
[[0 1 2]
[3 4 5]
14
[6 7 8]]
----------
[0 1 2]
[0, 1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[222, 1]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0 1 2 3 4 5 6 7 8 9]
--------------------------
[2 3 4]
-----------------
[ 0 1 222 3 4 5 6 7 8 9]
-*-------------------------
[222 3 4]
15
my_copy[0] = 222
print(array)
print("----------------------")
print(my_copy)
[0 1 2 3 4 5 6 7 8 9]
----------------------
[222 3 4]
array[0:3] = -1
print(array)
[0 1 2 3 4 5 6 7 8 9]
----------
[0 1 2]
---------------
[-1 -1 -1 3 4 5 6 7 8 9]
Slicing condicionales
[109]: #Creamos un array numpy desde el -3 hasta el 3, 1D
array = [Link](-3,4)
print(array)
print("---------------")
#Creamos una variable donde decimos si array%2 == 0, imprima true, sino false
mask = array %2 == 0
print(mask)
print("---------------")
#Imprimimos los valores por índice
print(array[mask])
print("---------------")
#imprimimos la condicional dentro
print(array[array %2 == 0])
print("---------------")
#Podemos asignar valores a la condicional, ahora valdrá 0 los pares
array[mask] = 0
print(array)
[-3 -2 -1 0 1 2 3]
---------------
16
[False True False True False True False]
---------------
[-2 0 2]
---------------
[-2 0 2]
---------------
[-3 0 -1 0 1 0 3]
[-3 -2 -1 0 1 2 3]
---------------
[0 0 0 0 1 2 3]
---------------
array_par[0] = -10 #decimos que de los pares, el primer índice sea -10
print(array_par)
print("---------------")
[-3 -2 -1 0 1 2 3]
---------------
[False True False True False True False]
---------------
[-2 0 2]
---------------
[-10 0 2]
---------------
17
• Acceso a múltiples valores con listados de índices
print("Seleccionado filas")
#Seleccionamos mediante índice la fila 1 y 2
print(array[[1,2]])
print("------------------")
print("Seleccionando Columnas")
#Seleccionamos mediante índice todas las filas de la columna 1 y 2
print(array[:,[1,2]])
print("------------------")
print("Juntamos filas y columnas")
#Primero, seleccionamos filas mediante el índice 1 y 2 a todas las col
#Segundo, seleccionamos col mediante indice 1 y 2 a todas las filas
print(array[[1,2],:][:,[1,2]])
print("------------------")
print("Lo mismo de arriba pero método de numpy")
print(array[np.ix_([1,2],[1,2])])
print("------------------")
print("Copia slice")
# copia del array de la fila índice 2, fila índice 3 y índice fila 1
ar = array[[2,3,1]]
print(ar)
print("------------------")
#En la fila índice 0, todos los valores serán 999
ar[0] = 999
print(ar)
print(array)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
------------------
Seleccionado filas
[[ 4 5 6 7]
[ 8 9 10 11]]
------------------
Seleccionando Columnas
[[ 1 2]
[ 5 6]
[ 9 10]
[13 14]]
18
------------------
Juntamos filas y columnas
[[ 5 6]
[ 9 10]]
------------------
Lo mismo de arriba pero método de numpy
[[ 5 6]
[ 9 10]]
------------------
Copia slice
[[ 8 9 10 11]
[12 13 14 15]
[ 4 5 6 7]]
------------------
[[999 999 999 999]
[ 12 13 14 15]
[ 4 5 6 7]]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
[0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
-----------------------------------------------
[0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 1]
19
array *= 2
print(array)
print("--------------------------------------------------------")
array += 10
print(array)
print([Link]) # check data type of array
[1 1 1 1]
*------------------------------------------------
[2 2 2 2]
--------------------------------------------------------
[12 12 12 12]
int8
[2. 2. 2. 2.]
--------------------------------------------------------
[1 2 3 4]
--------------------------------------------------------
Suma de Array
[3. 4. 5. 6.]
--------------------------------------------------------
Resta de Array
[ 1. 0. -1. -2.]
--------------------------------------------------------
Multiplicación de Array
20
[2. 4. 6. 8.]
--------------------------------------------------------
División de Array
[0.5 1. 1.5 2. ]
--------------------------------------------------------
"""
21
[Link](array)
[0 1 2 3 4]
print(array1)
print(array2)
#greater compara los valores de los índices entre ellos
#Devuelve true si es mayor el primero que el segundo
#array1[i] > array2[i]
print([Link](array1,array2))
#array1[i] < array2[i]
print([Link](array2, array1))
[0 1 2 3]
[ 0 -1 2 -3]
[False True False True]
[False True False True]
Función Descripción
sum(arr) Suma de todos los elementos de arr
mean(arr) Media aritmética de los elementos de arr
std(arr) Desviación estándar de los elementos de arr
cumsum(arr) Devuelve un array con la suma acumulada de cada elemento con todos
los anteriores
cumprod(arr) Devuelve un array con el producto acumulado de cada elemento con
todos los anteriores
min(arr), max(arr) Mínimo y máximo de arr
any(arr) En un array de tipo booleano, retorna True si algún elemento es
True
all(arr) En un array de tipo booleano, retorna True si todos los elementos
son True (o <>0 en valores numéricos)
unique(arr) Devuelve un array con los valores únicos de arr
in1d(arr1, arr2) Devuelve un array booleano indicando si cada elemento de arr1 está
en arr2
union1d(arr1, arr2) Devuelve la unión de ambos arrays
22
Función Descripción
intersect1d(arr1, arr2) Devuelve la intersección de ambos arrays
[0 1 2 3 4 5 6 7 8]
--------------------------------------------------------
36
--------------------------------------------------------
[ 0 1 3 6 10 15 21 28 36]
[[-8 -7 -6 -5 -4]
[-3 -2 -1 0 1]]
--------------------------------------------------------
True
--------------------------------------------------------
False
23
#las demás no tienen 0, así que son True
print([Link](axis=0))
print("--------------------------------------------------------")
#Ahora hacemos lo mismo pero mediante filas
#En la primera fila "0 1 2 3 4" hay un 0, así que es False
#En la otra fila, no hay 0, así que es True
print([Link](axis=1))
print("--------------------------------------------------------")
print([Link]())
[[0 1 2 3 4]
[5 6 7 8 9]]
--------------------------------------------------------
[False True True True True]
--------------------------------------------------------
[False True]
--------------------------------------------------------
False
Función Descripción
dot(mat1, mat2) Devuelve el producto escalar entre dos arrays. Si son matrices 2D, es
equivalente a la multiplicación de ambas
matmul(mat1, mat2) Devuelve el producto entre dos matrices
trace(mat) Suma de los elementos de la diagonal de la matriz
det(mat) Devuelve el determinante de la matriz
eig(mat) Computa los autovalores y autovectores de la matriz cuadrada
inv(mat) Devuelve la inversa de la matriz
qr(mat) Computa la factorización QR de la matriz
solve(A, b) Resuelve el sistema lineal de ecuaciones Ax = b, cuando A es cuadrada
transpose(mat) Devuelve la transpuesta de la matriz
24
#0*1 + 1*3 + 2*5 = 0 + 3 + 10 = 13 (como no alcanzo, completo con la de abajo)
print("----------------------------------")
#Devuelve el producto escalar entre dos matices, si es 2D es quivalente a la␣
↪multiplicación entre las 2
print([Link](A, B))
print("----------------------------------")
print(A @ B) #es el matmul en símbolo
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[[0 1]
[2 3]
[4 5]]
----------------------------------
[[10 13]
[28 40]
[46 67]
[64 94]]
----------------------------------
[[10 13]
[28 40]
[46 67]
[64 94]]
----------------------------------
[[10 13]
[28 40]
[46 67]
[64 94]]
25
"""
b = [Link]([12,2,32]) # resultados de cada ecuación
print(a)
print(b)
"""
a= matriz de coeficientes (3x3)
b= vector de resultados (3 elementos)
"""
print("-------------------------------------")
#Verificamos la solución
#[Link](a, b) devuelve True si a y b son iguales o muy cercanos
print([Link](3*x + 2*y +5*z, 12))
print([Link](x - 3*y - z, 2))
print([Link](2*x -y + 12*z, 32))
[[ 3 2 5]
[ 1 -3 -1]
[ 2 -1 12]]
[12 2 32]
-------------------------------------
x=0.7543859649122807 y=-1.2280701754385965 z=2.43859649122807
-------------------------------------
True
True
True
26
#producto matricial A × I
#La propiedad de la identidad asegura que el resultado es exactamente A
#Cada fila de A se mantiene igual, porque la identidad no altera los valores.
print([Link](A,I))
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
-------------------------------------
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]]
-------------------------------------
[[ 0. 1. 2. 3.]
[ 4. 5. 6. 7.]
[ 8. 9. 10. 11.]
[12. 13. 14. 15.]]
print("Mask")
print(mask) #print True o False
print(prices[mask]) #Se muestran los valores de la condicional
print("-------------------------------------")
prices[mask] = 1.0 #Cambia todos los elementos menores de 1 a 1.0
print(prices)#print
print("-------------------------------------")
#Usar [Link] para reemplazar valores sin modificar el array original
#Verifica la condición prices < 1
#Si es True entonces reemplaza por 1.0
#Si no lo es, deja el precio
print([Link](prices < 1, 1.0, prices))
27
[0.99 0.49]
-------------------------------------
Mask
[ True False False False True]
[0.99 0.49]
-------------------------------------
[ 1. 14.49 19.99 20.99 1. ]
-------------------------------------
[ 1. 14.49 19.99 20.99 1. ]
[157]: #Creamos en una variable un array con 6 valores, el cual se hará una matriz 2D␣
↪2 filas x 3 col
print(bank_transfers_values)
print("-------------------------------------")
#Guarda en una variable la condicional: si la transferencias son mayores a 0 se␣
↪quedan igual, caso contrario se hacen 0
28
[161]: # [Link] puede seleccionar elementos
print(bank_transfers_values)
print("----------------------------------")
# array de índices para los que la condición es True
credits = [Link](bank_transfers_values > 0) #Todos los numeros menores a 0
print(credits)
print("----------------------------------")
#bank_transfers_values[credits] devuelve los valores que cumplen la condición
print(bank_transfers_values[credits])
#Esto es equivalente a usar el slicing condicional directamente:
print(bank_transfers_values[bank_transfers_values > 0])
#Crear un array de 0 a 5
rewards_default = [Link](6)
print(rewards_default)
print("----------------------------------")
#Creamos un array del 0 al 5 y luego se multiplica cada uno de ellos * 10
rewards_upgrade = [Link](6) * 10
print(rewards_upgrade)
print("----------------------------------")
#Creamos un array con datos pre establecidos
daily_points = [Link]([0, 0, 1, 6, 0, 2])
print(daily_points)
print("----------------------------------")
#Creamos una variable con una condicional de que si los
#daily_points son mayores a 1, entonces da rewards_upgrade, caso contrario
#da rewards_default
final_rewards = [Link](daily_points > 1, rewards_upgrade, rewards_default)
print(final_rewards)
[0 1 2 3 4 5]
----------------------------------
[ 0 10 20 30 40 50]
----------------------------------
29
[0 0 1 6 0 2]
----------------------------------
[ 0 1 2 30 4 50]
0.412566289226884
0
2.8522817582556415
[172]: 'Pikachu'
0.8.1 [Link]
• Generar fácilmente listas con valores aleatorios
0.0026124702875048866
1
[[0 0 2 1]
[2 0 0 0]]
30
[[-0.35882895 0.6034716 ]
[-1.66478853 -0.70017904]
[ 1.15139101 1.85733101]
[-1.51117956 0.64484751]]
1
9.186109079379216
[[3 1]
[0 2]]
[187]: i = 5
#Buscamos
#Hacemos un for para recorrer 5 números
for _ in range(5):
#fija la semilla de la generación de números aleatorios
#Aquí siempre usamos i=5
#por eso cada iteración genera exactamente los mismos números.
[Link](i) # misma semilla
#[Link]() genera un número aleatorio uniforme entre 0 y 1
print([Link]())
print([Link]())
#Con la misma semilla, los números aleatorios son reproducibles.
print("--------------------------------------")
print()
#range(6) genera los números 0, 1, 2, 3, 4, 5
for i in range(6):
#Aquí cada iteración tiene una semilla diferente: 0, 1, 2, 3, 4, 5
#Por eso cada par de números aleatorios será diferente en cada iteración.
[Link](i) # diferentes semillas
31
#genera un número aleatorio uniforme entre 0 y 1.
#Se hace dos veces por iteración,
#por eso verás dos números distintos por semilla.
print([Link]())
print([Link]())
0.22199317108973948
0.8707323061773764
--------------------------------------
0.22199317108973948
0.8707323061773764
--------------------------------------
0.22199317108973948
0.8707323061773764
--------------------------------------
0.22199317108973948
0.8707323061773764
--------------------------------------
0.22199317108973948
0.8707323061773764
--------------------------------------
0.5488135039273248
0.7151893663724195
0.417022004702574
0.7203244934421581
0.43599490214200376
0.025926231827891333
0.5507979025745755
0.7081478226181048
0.9670298390136767
0.5472322491757223
0.22199317108973948
0.8707323061773764
32
20. Consider a (6,7,8) shape array, what is the index (x,y,z) of the 100th␣
↪element? (���)
"""
#En caso que no entiendan inglés, dejo la versión en español xd
"""
2. Imprimir la versión de numpy y la configuración (���)
4. Cómo encontrar el tamaño en memoria de cualquier array (���)
6. Crear un vector nulo de tamaño 10 pero con el quinto valor igual a 1 (���)
8. Invertir un vector (el primer elemento se convierte en el último) (���)
10. Encontrar los índices de los elementos distintos de cero de [1,2,0,0,4,0]␣
↪(���)
20. Considerar un array con forma (6,7,8), ¿cuál es el índice (x,y,z) del␣
↪elemento número 100? (���)
"""
print()
2.4.0
soy_ejemplo = [Link](2,6)
print("El array es: ", soy_ejemplo)
#¿Por qué? recordemos que son bits que se van sumando
print("Tamaño en la memoria", soy_ejemplo.nbytes)
El array es: [2 3 4 5]
Tamaño en la memoria 32
[198]: #Create a null vector of size 10 but the fifth value which is 1 (���)
import numpy as np
33
# Change the fifth value to 1
vector[4] = 1
# Print
print(vector)
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
# First Vector
vector = [Link]([1, 2, 3, 4, 5])
# Reversed Vector
vector_invertido = vector[::-1]
# Print ssssssssssss
print(vector)
print(vector_invertido)
[1 2 3 4 5]
[5 4 3 2 1]
#Create an array
arraysito = [Link]([1, 2, 0, 0, 4, 0])
#print
print("Array:", arraysito)
# I use [Link]
index = [Link](arraysito)
print("Índices de elementos distintos de cero:", index[0])
#Another technique to do
index2 = [Link](arraysito != 0)
print("Index : ", index2[0])
Array: [1 2 0 0 4 0]
Índices de elementos distintos de cero: [0 1 4]
Index : [0 1 4]
34
print(arrayote)
[211]: #Create a random vector of size 30 and find the mean value (���)
vector = [Link](30) # vector with 30 random values between 0 and 1
mean = [Link]()# calculate the mean
print("Vector:", vector)
print("Mean:", mean)
[212]: #How to add a border (filled with 0's) around an existing array
arrayloco = [Link]([[1, 2], [3, 4]])
# Add a border of 0's around the array
arr_border = [Link](arrayloco, pad_width=1, mode='constant', constant_values=0)
print(arr_border)
[[0 0 0 0]
[0 1 2 0]
[0 3 4 0]
[0 0 0 0]]
[217]: #Create a 5x5 matrix with values 1,2,3,4 just below the diagonal
# Lower diagonal
[[0 0 0 0 0]
[1 0 0 0 0]
[0 2 0 0 0]
35
[0 0 3 0 0]
[0 0 0 4 0]]
[218]: #Consider an array with shape (6,7,8), what is the index (x,y,z) of the 100th␣
↪element?
print(index_3d)
[220]: #El resultaod que sale arriba devuelve en forma de tupla, en formato
#normal sería así (1,5,4)
36
1 Github
37