def foo(): # Cargamos los datos datos = sci.load_csv("serie.csv") x = sci.data_map(datos, lambda dic: dic["tiempo"]) y1 = sci.data_map(datos, lambda dic: dic["sensor1"]) y2 = sci.data_map(datos, lambda dic: dic["sensor2"]) y3 = sci.data_map(datos, lambda dic: dic["sensor3"]) fig, ax = plt.subplots() ax.plot(x, y1) ax.plot(x, y2) ax.plot(x, y3) # Regresamos la imagen como la respuesta del servidor canvas = FigureCanvasAgg(fig) png_output = StringIO.StringIO() canvas.print_png(png_output) response = make_response(png_output.getvalue()) response.headers["Content-Type"] = "image/png" return response
def home(): datos = sci.load_xl("Libro1.xlsx", "Hoja1", "C4:F10") labels = sci.data_map(datos[0], lambda k: k) html = "<table>" html += "<tr>" for label in labels: html += "<th>%s</th>" % label html += "</tr>" for dic in datos: html += "<tr>" for label in labels: html += "<td>%s</td>" % (str(dic[label])) html += "</tr>" html += "</table>" return html
from sci import load_xl, data_map datos = load_xl("datos_flujo.xlsx", "Hoja1", "B2:D9") def f(dic): # dic (N, S, A) if dic["S"] > 5: return dic filtrados = data_map(datos, f) print filtrados
from sci import data_map a = [1, 2, 3, 4, 5, 9, 18] def f(num): if num % 2 == 0: return num + 1 else: return num b = data_map(a, f) print b
from sci import load_xl, data_map from datetime import datetime clientes = load_xl("clientes.xlsx", "Hoja1", "A1:C1001") def enero_2015(cliente): # cliente (Nombre, Fecha, Consumo) fecha = datetime.strptime(cliente["Fecha"], "%d-%m-%Y") ini = datetime.strptime("1-1-2015", "%d-%m-%Y") fin = datetime.strptime("31-1-2015", "%d-%m-%Y") if fecha >= ini and fecha <= fin: return cliente["Consumo"] consumos = data_map(clientes, enero_2015) total = sum(consumos) promedio = total / len(consumos) print "Total de consumo: %d Promedio: %.2f" % (total, promedio)
import sci a = [1, 2, 3, 5, 7, 5, 3] b = sci.data_map(a, lambda x: 10 - x) print b
import matplotlib.pyplot as plt from sci import data_map def f(x): return x + w n = 3 w = 0.8 / n x1 = [1, 2, 3, 4, 5] x2 = data_map(x1, f) # x3 = data_map(x2, f) # y1 = [10, 20, 30, 40, 50] y2 = [50, 40, 30, 20, 10] y3 = [10, 20, 40, 30, 50] plt.bar(x1, y1, w) # plt.bar(x2, y2, w) # plt.bar(x3, y3, w) # plt.show()
import re def latlon(coord): #22°21′00″N r = re.search("(\d+).(\d+).(\d+)..(\w)", coord) g = int(r.group(1)) m = int(r.group(2)) s = int(r.group(3)) return g + m / 60.0 + s / 3600.0 import sci rutas = sci.load_xl("estados.xlsx", "Hoja2", "A1:C9") lats = sci.data_map(rutas, lambda ruta: latlon(ruta["Latitud"])) lons = sci.data_map(rutas, lambda ruta: -latlon(ruta["Longitud"])) latlons = zip(lats, lons) XY = sci.data_map(latlons, lambda (lat, lon): map(lon, lat)) X = sci.data_map(XY, lambda (x, y): x) Y = sci.data_map(XY, lambda (x, y): y) plt.plot(X, Y) plt.plot(X, Y, "ro") plt.show()
def tdatoX(paciente): sexo = 1 if paciente["Sexo"] == "Hombre" else 2 s1 = 1 if paciente["S1"] == "SI" else 0 s2 = 1 if paciente["S2"] == "SI" else 0 s3 = 1 if paciente["S3"] == "SI" else 0 return [sexo, s1, s2, s3] def tdatoY(paciente): e1 = 1 if paciente["E1"] == "SI" else 0 e2 = 1 if paciente["E2"] == "SI" else 0 return [e1, e2] X = sci.data_map(datos, tdatoX) Y = sci.data_map(datos, tdatoY) from sklearn.neural_network import MLPClassifier clf = MLPClassifier() clf.fit(X, Y) Yp = clf.predict([[1, 1, 0, 1], [0, 0, 0, 1]]) def f(Y): return { "E1": "SI" if Y[0] == 1 else "NO", "E2": "SI" if Y[1] == 1 else "NO" }
from sklearn.neural_network import MLPClassifier import sci datos = sci.load_xl("sintomas.xlsx", "Hoja1", "B3:G8") def tsexo(paciente): if paciente["Sexo"] == "Hombre": return 1 return 2 def tsino(paciente): if paciente[k] == "SI": return 1 return 0 sexos = sci.data_map(datos, tsexo) k = "S1" s1 = sci.data_map(datos, tsino) k = "S2" s2 = sci.data_map(datos, tsino) k = "S3" s3 = sci.data_map(datos, tsino) k = "E1" e1 = sci.data_map(datos, tsino) k = "E2" e2 = sci.data_map(datos, tsino)
import sci # CSV - Cargar una lista de diccionarios de un archivo csv personas = sci.load_csv("datos_lab.csv") #print personas def transform(persona): if persona["Sexo"] == "Mujer": return persona["Ingresos"] ingresos_mujeres = sci.data_map(personas, transform) print ingresos_mujeres
import sci data = [ { "x": 10, "y": 8 }, { "x": 1, "y": 2 }, { "x": 5, "y": 3 }, { "x": 7, "y": 1 }, ] data2 = sci.data_map(data, lambda dic: dic["x"] if dic["x"] > 5 else None) print data2