# -*- coding: utf-8 -*- """ Editor de Spyder Este es un archivo temporal """ # Donde empezar: # Lo mas fácil para usar Python científico es utilizar # la distribución Anaconda (que incluye muchos paquetes). # http://continuum.io/downloads#py34 # Tutorial generico: http://www.diveintopython3.net/ # Documentacion de Python: https://docs.python.org/3/ # Tutorial científico: https://scipy-lectures.github.io/ # Paquetes: # - Rutinas numéricas: http://www.numpy.org/ # http://www.scipy.org/ # - Graficos: http://matplotlib.org/ # - Manejo de Unidades: http://pint.readthedocs.org/ #============================================================================== # IMPORTACIÓN DE LAS BIBLIOTECAS QUE NECESITAMOS USAR #============================================================================== import pandas as pd import numpy as np import matplotlib.mlab as mlab import matplotlib.pyplot as plt #============================================================================== # IMPORTACIÓN DE LOS DATOS DESDE UN ARCHIVO #============================================================================== #uso la biblioteca 'pandas' ######### Desde un achivo de excel .csv # Nombre del archivo con los datos, tiene que estar en la misma carpeta # donde guardamos el .py file="histograma100b.csv" # donde volcar datos result = [] # Lee el archivo, separado por tabulaciones, salteando 0 lineas de header # y empleando el punto como separador decimal #data = pd.read_csv(file, sep='\t', skiprows=0, decimal='.')# mirar que separador tiene configurado el excel data = pd.read_csv(file, sep=';', skiprows=0, decimal='.') # Convierte el dataframe de pandas a un array de numpy nparray = data.values # Guardo en la variable nparray los datos que importé, en forma de array (es como una matriz) # Remueve los posibles nans del archivo nparray = nparray[~np.isnan(nparray).any(axis=1)] # Asigna las columnas a variables de salida al array for cols in range(nparray.shape[1]): out = nparray[:,cols] result.append(out) # para ver print(result) print(len(result[0])) #============================================================================== # GRAFICAR EL HISTOGRAMA DE LOS DATOS #============================================================================== # uso la biblioteca matplotlib.pyplot plt.close('all') # antes de graficar, cierra todas las figuras que estan abiertas plt.title("histograma") #le pongo nombres a los ejes plt.xlabel('Tiempo de pulsación(s)') plt.ylabel('Cuentas') #grafico histograma con bins intervalos weights = np.ones(len(result[0]))/len(result[0]) n,bin_positions,p=plt.hist(result,bins=10,weights=weights, edgecolor="black") print(n,bin_positions) #============================================================================== # CALCULAR LA MEDIA, LA DESVIACIÓN ESTÁNDAR DE LOS DATOS y EL NÚMERO TOTAL DE CUENTAS #============================================================================== # uso la biblioteca numpy mu=np.mean(result[0]) # media sigma=np.std(result[0]) #desviación estándar N=len(result[0]) # número de cuentas std_err = sigma / N**0.5 # error estándar # muestro estos resultados print( 'media: ', mu) print( 'desviacion estandar de los datos: ', sigma) print( 'total de cuentas: ', N) print( 'desviación estandar del promedio: ', std_err)