-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcuaderno_numpy.py
More file actions
189 lines (131 loc) · 5.17 KB
/
cuaderno_numpy.py
File metadata and controls
189 lines (131 loc) · 5.17 KB
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# -*- coding: utf-8 -*-
"""Copia de Python TOTAL - Numpy.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1RJ5lMM11UepgJvp8b2yp3MP6jAIQrud-
# Práctica de la librería Numpy
En este notebook, se desarrollarán una serie de tareas utilizando la librería Numpy (Numerical Python).
Se proponen y documentan posibles formas de resolver los ejercicios, pero las mismas no son únicas.
Siempre es una buena idea verificar la [Documentación Oficial de Numpy](https://numpy.org/devdocs/user/index.html), donde es posible encontrar todo tipo de información referida a esta librería. Y si te quedas trabado, busca en Google "como hacer [algo] con Numpy". Hay enormes probabilidades de que esa pregunta ya haya sido respondida!
"""
# Importamos Numpy con su abreviación "np"
import numpy as np
# Podemos crear arrays de una dimensión con la función np.array()
array_unidim = np.array([1,2,3,4,5])
# O un array de dos dimensiones (bidimensional)
array_bidim = np.array([
[1,2,3],
[4,5,6]
]
)
# O un array de tres dimensiones (tridimensional)
array_tridim = np.array([
[
[1,2,3],
[4,5,6]
],
[
[7,8,9],
[10,11,12]
]
])
"""Para cada uno de estos arrays, podemos obtener sus propiedades, tales como su "forma", número de dimensiones, tipos de datos y tamaño."""
from numpy.core.multiarray import array
# Atributos del array unidimensional (forma, número de dimensiones, tipos de datos, tamaño, y tipo)
array_unidim.shape, array_unidim.ndim, array_unidim.dtype, array_unidim.size, type(array_unidim)
# Atributos del array bidimensional
array_bidim.shape, array_bidim.ndim, array_bidim.dtype, array_bidim.size, type(array_bidim)
# Atributos del array tridimensional
array_tridim.shape, array_tridim.ndim, array_tridim.dtype, array_tridim.size, type(array_tridim)
# Importamos pandas como pd, y creamos un DataFrame a partir del array bidimensional
import pandas as pd
datos = pd.DataFrame(array_bidim)
datos
# Creamos un array de tamaño 4x3, formado únicamente por unos (1)
unos = np.ones((4,3))
unos
# Creamos un array de tamaño 2x4x3, formado únicamente por ceros (0)
cero = np.zeros((2,4,3))
cero
# Creamos un array de números en el rango de 0 a 100, con un paso de 5
array_1 = np.arange(0,101,5)
array_1
# Creamos un array de números aleatorios enteros comprendidos en entre 0 y 10, de tamaño (2, 5)
array_2 = np.random.randint(0,10,(2,5))
array_2
# Creamos un array de números aleatorios decimales comprendidos en entre 0 y 1, de tamaño (3, 5)
array_3 = np.random.random((3,5))
array_3
# Establecemos la "semilla" de números aleatorios en 27
np.random.seed(27)
# Creamos un array de números aleatorios enteros comprendidos en entre 0 y 10, de tamaño (3, 5)
array_4 = np.random.randint(0,10,(3,5))
array_4
"""¿Qué ocurre al correr la última celda nuevamente, a diferencia de las anteriores?"""
# Encontramos los valores únicos del array_4
np.unique(array_4)
# Extraemos el elemento de índice 1 del array_4
array_4[1]
# Extraemos las primeras dos filas del array_4
array_4[:2]
# Extraemos los dos primeros datos de las primeras dos filas del array_4
array_4[:2,:2]
# Creamos dos arrays de tamaño 3x4: uno relleno de números aleatorios entre 0 y 10, y otro relleno de unos
array_5 = np.random.randint(0,10,(3,4))
array_6 = np.ones((3,4))
# invocamos el array_5
array_5
# invocamos el array_6
array_6
# Sumamos los dos arrays
array_5 + array_6
# Creamos ahora un array de tamaño (4,3) lleno de unos
array_7 = np.ones((4,3))
array_7
# Intentaremos sumar los arrays 6 y 7
array_6 + array_7
"""¿A qué se debe el error anterior? ¿Qué deberíamos tener en cuenta para que no suceda?"""
# Entonces crearemos otro array de tamaño (4,3) lleno de unos
array_8 = np.ones((4,3))
array_8
# Restamos el array_8 al array_7
array_8 - array_7
# Creamos otros dos arrays de tamaño 3x3 con números aleatorios del 1 al 5
array_9 = np.random.randint(1,5,(3,3))
array_10 = np.random.randint(1,5,(3,3))
# invocamos el array_9
array_9
# invocamos el array_10
array_10
# Multiplicamos los últimos dos arrays entre sí
array_9 * array_10
# Elevamos el array_9 al cuadrado
array_9 ** 2
# Buscamos la raíz cuadrada del array_10
np.sqrt(array_10)
# Hallamos el promedio de los valores del array_9
array_9.mean()
# Hallamos el valor máximo de los valores del array_9
array_9.max()
# Hallamos el valor mínimo de los valores del array_9
array_9.min()
# Cambiamos la forma del array_9 por una de 9x1, y lo almacenamos como array_11
array_11 = array_9.reshape((9,1))
# invocamos el array_11
array_11
# Transponemos el array_11
array_11.T
# Comparamos el array_9 y el array_10, para saber cuáles elementos del array_9 son mayores a los del array_10
array_12 = array_9 > array_10
array_12
"""¿Qué tipos de datos forman parte del array de resultados?"""
# Veamos sus nuevos tipos de datos
array_12.dtype
# Alguno de los elementos del array_9 es igual su equivalente del array_10?
array_9 == array_10
# Comparamos nuevamente ambos arrays, en esta ocasión con >=
array_9 >= array_10
# Buscamos los elementos del array_9 que son mayores a 2
array_9 > 2
# Ordenamos de menor a mayor los elementos dentro del array_9
np.sort(array_9)