Es muy útil poder leer datos, pero es aún más útil poder modificarlos a nuestro antojo.
Hay varias maneras de hacer esto,usando diferentes módulos de Python.
Podemos generar datos dentro de Python usando Numpy y luego guardándolos en algún archivo, cuya extensión es .npy
(Qué raro) para luego volver a cargarlo en otro Notebook o Script.
Ejemplo:
import numpy as np
data = np.array([[1, 2, 3], [4, 5, 6]])
np.save('/home/moury/Documents/Data/test', data)
x = np.load('/home/moury/Documents/Data/test.npy')
print("Data =\n\n",x)
Data = [[1 2 3] [4 5 6]]
Juguemos con los datos:
sumita = np.sum(x)
produc = 2*x
potenc = x**2
promed = np.average(x)
stdevi = np.std(x)
print("La suma es:", sumita,"\n")
print("El Producto es:\n\n", produc,"\n")
print("La Potencia es:\n\n", potenc,"\n")
print("El promedio es:", promed,"\n")
print("La Desviación estándar es:", stdevi)
La suma es: 21 El Producto es: [[ 2 4 6] [ 8 10 12]] La Potencia es: [[ 1 4 9] [16 25 36]] El promedio es: 3.5 La Desviación estándar es: 1.707825127659933
También podríamos haber usado el atributo loadtxt
para leer archivos .txt:
x=np.loadtxt("/home/moury/Documents/Data/data.txt")
print("Data =\n\n",x)
#Notar los puntos
Data = [[4. 1. 5.] [4. 8. 3.] [1. 4. 5.] [9. 0. 6.]]
Numpy es un poco celoso para leer archivos de otros formatos diferentes de npy y .txt.
En vez de eso, podemos usar el módulo csv (comma-separated values) para leer archivos.
Esto es un poco más engorroso, pero sin lugar a dudas vale la pena.
Nota: Solo podremos leer datos que contengan elementos numéricos.
import csv
filen = '/home/moury/Documents/Data/data.txt'
rawdata = open(filen,'r')
reader = csv.reader(rawdata, delimiter=' ')
x = list(reader)
data = np.array(x).astype('float')
print(data)
[[4. 1. 5.] [4. 8. 3.] [1. 4. 5.] [9. 0. 6.]]
Para esto, basta suministrar la dirección url donde se encuentran alojados los datos e importar ciertos atributos del módulo urllib:
from numpy import loadtxt
from urllib.request import urlopen
url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv'
rawdata=urlopen(url)
data2 = loadtxt(rawdata, delimiter=",")
print(data2)
[[ 6. 148. 72. ... 0.627 50. 1. ] [ 1. 85. 66. ... 0.351 31. 0. ] [ 8. 183. 64. ... 0.672 32. 1. ] ... [ 5. 121. 72. ... 0.245 30. 0. ] [ 1. 126. 60. ... 0.349 47. 1. ] [ 1. 93. 70. ... 0.315 23. 0. ]]