Python基础之numpy

常见数组的基本统计方法

方法说明
sum对数组中的全部或某个抽向元素进行求和
std、mean、var求标准差、均值、方差
argmin、argmax最小值索引、最大值索引
cumsum、cumprod所有元素累积和、累积积

生成简单随机数的函数及参数和描述

函数参数和描述
randd0,d1,…,dn:生成半开区间[0,1)内的多维随机数
randnd0,d1,…,dn:生成来自标准正态分布的多个样本
randintlow[,high,size]:生成半开区间[low,high)内的随机数
choicea[,size,replace,p]:生成在给定的一位数组中的随机样本
byteslength:生成随机字节

**知识扩展: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)

结果展示:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值