Sie sind auf Seite 1von 9

EJERCICIOS NUMPY ’KNN’ A ’ANN’

Juan David Solarte Moreno


May 27, 2019

1 Introducción
En este documento se explica los ejercicios ejemplo de class numpy con su con
su debida imagen, usando numpy se recrea graficas con datos aleatorios en
regrecion lineal.

2 Objetivos
• Generar un código funcional en python
• Generar un algoritmo que genere una gráfica en 1d, 2d y en poly.

• Explicar en funcionamiento de los archivos CSV.

3 Procedimiento
Elementos usados:
• Programa Python27.
• Scripts matplotlib 2.2.3.

• Scripts numpy-1.15.1 cp27.


• Scripts pip install -U scikit-learn.

3.1 Instalar los Scripts


Para instalar cualquier Scripts se debe usar CMD el sı́mbolo del sistema (este
se ejecuta como administrador), se escribe la dirección de la carpeta Scripts en
Python, los archivos respectivos deben estar en la misma carpeta y se instala
con el comando: pip install ”el nombre completo copiado del archivo”
Se instala en el CMD con la direccion de la carpeta de Python27 y Scripts, us-
ando el comando ’pip install -U scikit-learn’ y aceptar. Si no funciona el código
del que se a estado trabando es conveniente reiniciar el sistema o desinstalar
los programas con el comando pip uninstall y volver a reinstalarlos.

1
Figure 1: Instalació con CMD. Fuente propia

3.2 funcion range


range es tipo de secuencia inmutable, como se documenta en Rangos y tipos de
secuencia: lista, tupla, rango.

3.3 Primer ejemplo


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
A = np.array([
[0.3, 0.6, 0.1],
[0.5, 0.2, 0.3],
[0.4, 0.1, 0.5]])
v = np.ones(3) / 3
num iters = 25
distances = np.zeros(num iters)
for i in range(num iters):
v2 = v.dot(A)
d = np.linalg.norm(v2 - v)
distances[i] = d
v = v2
plt.plot(distances)
plt.show()

2
Figure 2: Grafica del primer ejemplo

Usando numpy para dar soporte de vectores y matrices procesados en un


array devuelve una nueva matriz de forma y tipo dado, rellena con ceros. De
define distances como la función predeterminada y se usa un plot para mostrar
la secuencia.

3.4 Segundo ejercicio


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
def sampleY(n=1000):
X = np.random.random(n)
Y = X.sum()
return Y
N = 1000
Y samples = np.zeros(N)
for i in range(N):
Y samples[i] = sampleY()
plt.hist(Y samples, bins=20)
plt.show()

3
Figure 3: Grafica del segundo ejercicio

Usando ramdom, es una funcion incorporada de un modulo aleatorio en


Python que devuelve una lista de longitud particular de elementos elegidos de
la secuencia, es decir, lista, tupla, cadena o conjunto. Utilizado para muestreo
aleatorio sin reemplazo.
Utilizando los datos imporados en ’rango’ se hace el histograma de samples
que se lo utiliza con la funcion np.zeros.

3.5 Tercer ejercicio


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
def is symmetric1(A):
return np.all(A == A.T)
def is symmetric2(A):
rows, cols = A.shape
if rows != cols:
return False
for i in range(rows):
for j in range(cols):
if A[i,j] != A[j,i]:
return False
return True
def check(A, b):
print(”Testing:”, A)
assert(is symmetric1(A) == b)

4
assert(is symmetric2(A) == b)
A = np.zeros((3, 3))
check(A, True)
A = np.eye(3)
check(A, True)
A = np.random.randn(3, 2)
A = A.dot(A.T)
check(A, True)
A = np.array([[1, 2, 3], [2, 4, 5], [3, 5, 6]])
check(A, True)
A = np.random.randn(3, 2)
check(A, False)
A = np.random.randn(3, 3)
check(A, False)
A = np.arange(9).reshape(3, 3)
check(A, False)

Figure 4: Resultado

5
Usando matrices con la funcion zeros, se imprime los vectores que se con-
cideran verdaeros y falsos.

3.6 Cuarto ejercicio


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
N = 2000
X = np.random.random((N, 2))*2 - 1
Y = np.zeros(N)
Y[(X[:,0] ¡ 0) & (X[:,1] ¿ 0)] = 1
Y[(X[:,0] ¿ 0) & (X[:,1] ¡ 0)] = 1
plt.scatter(X[:,0], X[:,1], c=Y)
plt.show()

Figure 5: Resultado

6
Los datos re posicionan en una gráfica aleatoria usando random para X con
Y generada con np.zeros, y se organiza las etiquetas en coordenadas de vectores
X,Y.

3.7 Quinto ejercicio


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
def get donut():
N = 2000
R inner = 100
R outer = 500
R1 = np.random.randn(N//2) + R inner
theta = 2*np.pi*np.random.random(N//2)
X inner = np.concatenate([[R1 * np.cos(theta)], [R1 * np.sin(theta)]]).T
R2 = np.random.randn(N//2) + R outer
theta = 2*np.pi*np.random.random(N//2)
X outer = np.concatenate([[R2 * np.cos(theta)], [R2 * np.sin(theta)]]).T
X = np.concatenate([ X inner, X outer ])
Y = np.array([0]*(N//2) + [1]*(N//2))
return X, Y
X, Y = get donut()
plt.scatter(X[:,0], X[:,1], c=Y)
plt.show()

Figure 6: Resultado

7
En este ejercicio las posiciones de los vectores y matrices es en forma de
dona, con distancia desde el origen con centros de 100 y 500, y las posiciones
aleatorias. El angle theta se distribuye uniformemente entre (0, 2pi).

3.8 Sexto ejercicio


from future import print function, division
from future.utils import iteritems
from builtins import range, input
import numpy as np
import matplotlib.pyplot as plt
def get spiral():
radius = np.linspace(1, 10, 100)
thetas = np.empty((6, 100))
for i in range(6):
start angle = np.pi*i / 3.0
end angle = start angle + np.pi / 2
points = np.linspace(start angle, end angle, 100)
thetas[i] = points
x1 = np.empty((6, 100))
x2 = np.empty((6, 100))
for i in range(6):
x1[i] = radius * np.cos(thetas[i])
x2[i] = radius * np.sin(thetas[i])
X = np.empty((600, 2))
X[:,0] = x1.flatten()
X[:,1] = x2.flatten()
X += np.random.randn(600, 2)*0.5
Y = np.array([0]*100 + [1]*100 + [0]*100 + [1]*100 + [0]*100 + [1]*100)
return X, Y
X, Y = get spiral()
plt.scatter(X[:,0], X[:,1], c=Y)
plt.show()

8
Figure 7: Resultado

La expiral se forma con datos de vectores aleatorios, con radios de 1, 10,


100. Se edita la coordenada usando coseno para el primer valor y seno para el
segundo. Se los define con flatten que significa aplanar en orden de columna
mayor. Y usando un plot de dispercion se saca la grafica.

4 Conclusiones
• Todos los datos se guardaron en un archivo de excel llamadao mydata.
• Todos los datos son aleatorios si son corridos de nuevo.

Das könnte Ihnen auch gefallen