求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

利用python进行数据分析
搭建python环境
统计 1880-2010 年间 全美婴儿姓名的趋势
Ipython & Ipython Notebook
NumPy Basics: Arrays and Vectorized Computation
Pandas(Python Data Analysis Library)
数据加载、储存与文件格式
绘图和可视化(Matplotlib)
时间序列
经济,金融数据应用
补充例子
国王与囚徒
利用python进行科学计算
分形与混沌之-Mandelbrot集合
分形与混沌之-迭代函数系统(IFS)
分形与混沌之-蔡氏电路模拟
对于μ子实验数据进行快速处理与分析
37%法则 - "非诚勿扰" 中的博弈
关于时间/日期的转换
深入研究
一切从游戏开始:完整的一个 python to hack 实例!
习题:扑克牌发牌
 
 

对于μ子实验数据进行快速处理与分析
954 次浏览
7次  

对于μ子实验数据进行快速处理与分析

实验中心网站上有μ子实验的链接: μ子寿命测量, 里面获得的原始数据可以利用python进行快速分析与作图.

筛选后的“寿命测量”有效事件数据

数据文件中每行第一个数据为μ子 衰变 时间(ns), 后一个为事件编号

筛选后的有效事件数据文件(一)

筛选后的有效事件数据文件(二)

import matplotlib.pyplot as plt
import pandas as pd

#names栏目抬头; delimiter 定义分隔符为' ',

df = pd.read_csv('E:\PycharmProjects
\muon1.txt', names=['time','id'], delimiter=' ')
#有网络的话甚至可以直接给网络链接:
df = pd.read_csv('http://phylab.fudan.edu.cn
/lib/exe/fetch.php?media=exp:muon:muon_sifted_1.txt',
names=['time','id'], delimiter=' ')

df
Out[20]:
time id
0 1080 1072823444
1 1920 1072823553
2 3220 1072823606
3 3860 1072823639

df['time'].hist(bins=100, alpha=0.3, normed=True)
plt.show()

 

更进一步, 可以用numpy 做数据统计后plot

import numpy as np

#函数输出两列, 第一列为计数, 第二列为bins区间
cnts = np.histogram(df['time'],bins=range
(0,20000,100))[0]

plt.plot(cnts)

得到的数据可以通过np.polyfit进行拟合, 完整代码如下

# -*- coding: utf-8 -*-
# by whyx 2017/1
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

#names栏目抬头; delimiter 定义分隔符为' ',

#df = pd.read_csv('E:\PycharmProjects\muon1.txt',
names=['time','id'], delimiter=' ')
#有网络的话甚至可以直接给网络链接:
df = pd.read_csv('http://phylab.fudan.edu.cn/
lib/exe/fetch.php?media=exp:muon:muon_sifted_1.txt',
names=['time','id'], delimiter=' ')

df['time'].hist(bins=100, alpha=0.3, normed=True)
plt.show()

cnts = np.histogram(df['time'],bins=range
(0,20000,100))[0]

#plt.plot(cnts)

cnts = np.log(cnts)
#去掉第一个点(仪器精度所致),去掉后面的背景噪音.
cnts = cnts[1:100]

x= range(0,len(cnts))
z1= np.polyfit(x,cnts,1)
p1= np.poly1d(z1)

xp= np.linspace(0,len(cnts))

plt.plot(x, cnts, '.', xp, p1(xp), '-')

plt.show()

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



954 次浏览
7次
 捐助