求知 文章 文库 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 实例!
习题:扑克牌发牌
 
 

搭建python环境
5352 次浏览
31次  

搭建python环境

windows下可以安装 enthought 集成的 EPDFree32安装包安装python用这个集成了基本所有需要的插件和环境.

装完以后可以运行桌面上pylab程序进入python环境。这个交互环境有点类似于matlab,我们可以快速在上面玩一下python。

做的练习参考下面:

注意: In[n] 的部分是你需要输入的, Out[n] 的部分是系统输出的。

如果安装的是anaconda 版本, 可以选择运行QTconsole 但是注意要先导入几个库函数:

#作图函数
在qtconsole 中用:
%matplotlib inline

否则导入使用:
import matplotlib.pyplot as plt
import pylab as py
import math as m
import scipy.stats as stats
import numpy as np
import pandas as pd

2的1000次方是多少?

In [3]: 2 ** 1000
Out[3]: 1071508607186267320948425049060001810561
40481170553360744375038837035105
112493612249319837881569585812759467291755314682
51871452856923140435984577574698
574803934567774824230985421074605062371141877954
18215304647498358194126739876755
916554394607706291457119647768654216766042983165
2624386837205668069376L

2的100万次方有多少位?

In [7]: len(str(2**1000000))
Out[7]: 301030

2的100万次方里面有多少个0?

import collections
collections.Counter(str(2**1000000)).most_common()

[('1', 30354),
('4', 30230),
('3', 30193),
('0', 30186),
('5', 30174),
('6', 30103),
('2', 30047),
('9', 30007),
('8', 29896),
('7', 29840)]

2的100万次方的所有数字之和为多少?

c = collections.Counter(str(2**1000000)).most_common()

In [9]: sum([i[1] for i in c])
Out[9]: 301030

#总数有301030位

In [10]: sum([i[1]*int(i[0]) for i in c])
Out[10]: 1351546

In [12]: sum([int(i) for i in str(2**1000000)])
Out[12]: 1351546

#数字之和为1351546

#引入字典概念
In [15]: dict(c).values()
Out[15]: dict_values([30103, 30047, 30354, 30186, 30193, 30174, 29840, 30007, 30230, 29896])

In [16]: sum(dict(c).values())
Out[16]: 301030

1-1000的所有数字之和为多少?

s=0
for i in range(1,1001):
for j in str(i):
s=s+int(j)

s
Out[16]: 13501

sum(map(int, ''.join(map(str, range(1, 1001)))))
Out[19]: 13501

强大的数值运算功能

直接通过公式 pi = 4(1/1 - 1/3 + 1/5 -1/7 +1/9 - 1/11…) 计算π

import numpy as np
n=1000000
np.sum(4.0/ np.r_[1:n:4, -3:-n:-4])
Out[15]: 3.1415906535897911

生成1000个0-1的随机数并排序后作图

In [11]: list = [random.random() for i in range(1000) ]

In [12]: plot(list)
Out[12]: [<matplotlib.lines.Line2D at 0xc9a8370>]

In [13]: plot(sorted(list))
Out[13]: [<matplotlib.lines.Line2D at 0xca46450>]

如何生成平方数并排序作图?倒序呢?

In [14]: list = [random.random()**2 for i in range(1000) ]

In [15]: plot(sorted(list))
Out[15]: [<matplotlib.lines.Line2D at 0xcd65510>]

In [16]: list.sort()

In [17]: list.reverse()

In [18]: plot(list)
Out[18]: [<matplotlib.lines.Line2D at 0xcd720b0>]

正态分布。。。以及拟合。。。

In [1]: import numpy as np; import pandas as pd
In [2]: values = pd.Series(np.random.normal(0, 1, size = 2000))
In [3]: values.hist(bins=100, alpha=0.3, color='k', normed= True)
Out[3]: <matplotlib.axes.AxesSubplot at 0x7325410>
In [4]: values.plot(kind='kde', style='r-')
Out[4]: <matplotlib.axes.AxesSubplot at 0x7325410>

绘图与可视化

通过隐函数(x^2+y^2-1)^3 - x^2 * y^3 =0 绘图

x, y=np.mgrid[-2:2:500j, -2:2:500j]
z=(x**2 + y**2 -1 )**3 -x**2 * y**3
plt.contourf(x,y,z, levels=[-1,0], colors=["red"])
plt.gca().set_aspect("equal")
plt.show()


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

1元 10元 50元





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



5352 次浏览
31次
 捐助