常见数组的基本统计方法:
方法 | 说明 |
---|---|
sum | 对数组中的全部或某个抽向元素进行求和 |
std、mean、var | 求标准差、均值、方差 |
argmin、argmax | 最小值索引、最大值索引 |
cumsum、cumprod | 所有元素累积和、累积积 |
生成简单随机数的函数及参数和描述:
函数 | 参数和描述 |
---|---|
rand | d0,d1,…,dn:生成半开区间[0,1)内的多维随机数 |
randn | d0,d1,…,dn:生成来自标准正态分布的多个样本 |
randint | low[,high,size]:生成半开区间[low,high)内的随机数 |
choice | a[,size,replace,p]:生成在给定的一位数组中的随机样本 |
bytes | length:生成随机字节 |
**知识扩展:matplotlib的hist函数:函数内容
matplotlib.pyplot.hist(x, bins=None, range=None, normed=False, weights=None, cumulative=False, bottom=None, histtype=’bar’, align=’mid’, orientation=’vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, hold=None, data=None, **kwargs)
参数详解
x : (n,) array or sequence of (n,) arrays(可以是一个array也可以是多个array)
(1)integer or array_like or ‘auto’, optional(可以是整型来设置箱子的宽度,也可以是array,指定每个箱子的宽度)
(2)bins : array(箱子的边界)
(3)range : tuple or None, optional(设置显示的范围,范围之外的将被舍弃)
(4)normed : boolean, optional(?)是否将得到的直方图向量归一化
normed=True表示正则化直方图,即归一化(即求频率)
(5)weights : (n, ) array_like or None, optional(?)
(6)cumulative : boolean, optional(?)
(7)bottom : array_like, scalar, or None(?)
(8)histtype : {‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}, optional(选择展示的类型,默认为bar)
(9)align : {‘left’, ‘mid’, ‘right’}, optional(对齐方式)
(10)orientation : {‘horizontal’, ‘vertical’}, optional(直方图方向)
(11)log : boolean, optional(log刻度)
(12)color : color or array_like of colors or None, optional(颜色设置)
(13)label : string or None, optional(刻度标签)
(14)stacked : boolean, optional(?)函数返回值
(15)n : array or list of arrays(箱子的值)
(16)patches : list or list of lists**
举个栗子:
import numpy
import matplotlib.pyplot as plt
size=1000
rn1=npr.rand(size,2)
rn2=npr.randn(size)
rn3=npr.randint(1,10,size)
rang=[0,10,20,30,40]
rn4=npr.choice(rang,size=size)
fig,((ax1,ax2),(ax3,ax4))=plt.subplots(nrows=2,ncols=2,figsize=(10,10))
ax1.hist(rn1,bins=25,stacked=True)
ax1.set_title('rand')
ax1.set_ylabel('frequency')
ax1.grid(True)
ax2.hist(rn2,bins=25)
ax2.set_title('randn')
ax2.grid(True)
ax3.hist(rn3,bins=25)
ax3.set_title('randint')
ax3.grid(True)
ax3.set_ylabel('frequency')
ax4.hist(rn4,bins=25)
ax4.set_title('choice')
ax4.grid(False)
结果展示:
再举个栗子:(将下列分布的随机数进行可视化)
(1)n=100,p=0.3的二项分布
(2)均值为10,标准差为2的正态分布
(3)自由度为0.5的卡方分布
(4)lamda为2的泊松分布
rn5=npr.binomial(100,0.3,size)
rn6=npr.normal(10,20,size)
rn7=npr.chisquare(0.5,size)
rn8=npr.poisson(2.0,size)
fig,((ax1,ax2),(ax3,ax4))=plt.subplots(nrows=2,ncols=2,figsize=(10,10))
ax1.hist(rn5,bins=25,stacked=True)
ax1.set_title('binomial')
ax1.set_ylabel('frequency')
ax1.grid(True)
ax2.hist(rn6,bins=25)
ax2.set_title('normal')
ax2.grid(True)
ax3.hist(rn7,bins=25)
ax3.set_title('chisquare')
ax3.grid(True)
ax3.set_ylabel('frequency')
ax4.hist(rn8,bins=25)
ax4.set_title('poisson')
ax4.grid(False)
结果展示: