Numpy———(八)

三、函数库

1、随机函数库

     1  RandomState类

        类式用法主要使用numpy.random.RandomState类,它是一个Mersenne Twister伪随机数生成器的容器。它提供了一些方法来生成各种各样概率分布的随机数。

构造函数:RandomState(seed)。其中seed可以为Noneintarray_like。这个seed是初始化伪随机数生成器。如果seedNone,则RandomState会尝试读取/dev/urandom或者Windows analogure来读取数据,或用者clock来做种子。

      

   RandomState保证了通过使用同一个seed以及同样参数的方法序列调用会产生同样的随机数序列(除了浮点数精度上的区别)。

RandomState提供了一些方法来产生各种分布的随机数。这些方法都有一个共同的参数size

  • 如果sizeNone,则只产生一个随机数
  • 如果size为一个整数,则产生一个一维的随机数数组。
  • 如果size为一个元组,则生成一个多维的随机数数组。其中数组的形状由元组指定。

    2 生成随机数的方法

  • .bytes(length):等效于numpy.random.bytes(...)函数
  • .choice(a[, size, replace, p]):等效于numpy.random.choice(...)函数
  • .rand(d0, d1, ..., dn):等效于numpy.random.rand(...)函数
  • .randint(low[, high, size]):等效于numpy.random.randint(...)函数
  • .randn(d0, d1, ..., dn) :等效于numpy.random.randn(...)函数
  • .random_integers(low[, high, size]):等效于numpy.random_integers.bytes(...)函数
  • .random_sample([size]):等效于numpy.random.random_sample(...)函数
  • .tomaxint([size]):等效于numpy.random.tomaxint(...)函数

3 排列组合的方法

    

  • .shuffle(x):等效于numpy.random.shuffle(...)函数
  • .permutation(x) :等效于numpy.random.permutation(...)函数

4、指定概率分布函数的方法

    

  • .beta(a, b[, size]):等效于numpy.random.beta(...)函数
  • .binomial(n, p[, size]):等效于numpy.random.binomial(...)函数
  • .chisquare(df[, size]):等效于numpy.random.chisquare(...)函数
  • .dirichlet(alpha[, size]):等效于numpy.random.dirichlet(...)函数
  • .exponential([scale, size]):等效于numpy.random.exponential(...)函数
  • .f(dfnum, dfden[, size]):等效于numpy.random.f(...)函数
  • .gamma(shape[, scale, size]):等效于numpy.random.gamma(...)函数
  • .geometric(p[, size]):等效于numpy.random.geometric(...)函数
  • .gumbel([loc, scale, size]):等效于numpy.random.gumbel(...)函数
  • .hypergeometric(ngood, nbad, nsample[, size]):等效于numpy.random.hypergeometric(...)函数
  • .laplace([loc, scale, size]):等效于numpy.random.laplace(...)函数
  • .logistic([loc, scale, size]):等效于numpy.random.logistic(...)函数
  • .lognormal([mean, sigma, size]):等效于numpy.random.lognormal(...)函数
  • .logseries(p[, size]):等效于numpy.random.logseries(...)函数
  • .multinomial(n, pvals[, size]):等效于numpy.random.multinomial(...)函数
  • .multivariate_normal(mean, cov[, size]):等效于numpy.random.multivariate_normal(...)函数
  • .negative_binomial(n, p[, size]):等效于numpy.random.negative_binomial(...)函数
  • .noncentral_chisquare(df, nonc[, size]):等效于numpy.random.noncentral_chisquare(...)函数
  • .noncentral_f(dfnum, dfden, nonc[, size]):等效于numpy.random.noncentral_f(...)函数
  • .normal([loc, scale, size]):等效于numpy.random.normal(...)函数
  • .pareto(a[, size]):等效于numpy.random.pareto(...)函数 -. poisson([lam, size]):等效于numpy.random.poisson(...)函数
  • .power(a[, size]):等效于numpy.random.power(...)函数
  • .rayleigh([scale, size]):等效于numpy.random.rayleigh(...)函数
  • .standard_cauchy([size]):等效于numpy.random.standard_cauchy(...)函数
  • .standard_exponential([size]):等效于numpy.random.standard_exponential(...)函数
  • .standard_gamma(shape[, size]):等效于numpy.random.standard_gamma(...)函数
  • .standard_normal([size]):等效于numpy.random.standard_normal(...)函数
  • .standard_t(df[, size]):等效于numpy.random.standard_t(...)函数
  • .triangular(left, mode, right[, size]):等效于numpy.random.triangular(...)函数
  • .uniform([low, high, size]):等效于numpy.random.uniform(...)函数
  • .vonmises(mu, kappa[, size]):等效于numpy.random.vonmises(...)函数
  • .wald(mean, scale[, size]):等效于numpy.random.wald(...)函数
  • .weibull(a[, size]):等效于numpy.random.weibull(...)函数
  • .zipf(a[, size]):等效于numpy.random.zipf(...)函数

     5.类式的其他函数

  • seed(seed=None):该方法在RandomState被初始化时自动调用,你也可以反复调用它从而重新设置伪随机数生成器的种子。

  • get_state():该方法返回伪随机数生成器的内部状态。其结果是一个元组(str, ndarray of 624 uints, int, int, float),依次为:

    • 字符串'MT19937'
    • 一维数组,其中是624个无符号整数key
    • 一个整数pos
    • 一个整数has_gauss
    • 一个浮点数cached_gaussian
  • set_state(state):该方法设置伪随机数生成器的内部状态,如果执行成功则返回None。参数是个元组(str, ndarray of 624 uints, int, int, float),依次为:

    • 字符串'MT19937'
    • 一维数组,其中是624个无符号整数key
    • 一个整数pos
    • 一个整数has_gauss
    • 一个浮点数cached_gaussian
  • set_state(state):该方法设置伪随机数生成器的内部状态,如果执行成功则返回None。参数是个元组(str, ndarray of 624 uints, int, int, float),依次为:

    • 字符串'MT19937'
    • 一维数组,其中是624个无符号整数key
    • 一个整数pos
    • 一个整数has_gauss
    • 一个浮点数cached_gaussian
1.统计量

   统计量是一个作用在样本空间上的函数。

  1、共同参数

  • a:一个array_like对象

  • axis:可以为为int或者tuple或者None

    • None:将a展平,在整个数组上操作
    • int:在a的指定轴线上操作。如果为-1,表示沿着最后一个轴(0轴为第一个轴)。
    • tuple of ints:在a的一组指定轴线上操作
  • out:可选的输出位置。必须与期望的结果形状相同

  • keepdims:如果为True,则结果数组的维度与原数组相同,从而可以与原数组进行广播运算。

  • 顺序统计:

  • numpy.minimum(x1, x2[, out]):返回两个数组x1x2对应位置的最小值。要求x1x2形状相同或者广播之后形状相同。
  • numpy.maximum(x1, x2[, out]):返回两个数组x1x2对应位置的最大值。要求x1x2形状相同或者广播之后形状相同。
  • numpy.amin(a[, axis, out, keepdims]) :返回a中指定轴线上的最小值(数组)、或者返回a上的最小值(标量)。
  • numpy.amax(a[, axis, out, keepdims]) :返回a中指定轴线上的最大值(数组)、或者返回a上的最小值(标量)。
  • numpy.nanmin(a[, axis, out, keepdims]): 返回a中指定轴线上的最小值(数组)、或者返回a上的最小值(标量),忽略NaN
  • numpy.nanmax(a[, axis, out, keepdims]) :返回a中指定轴线上的最大值(数组)、或者返回a上的最小值(标量)忽略NaN
  • numpy.ptp(a[, axis, out]) :返回a中指定轴线上的最大值减去最小值(数组),即peak to peak
  • numpy.argmin(a, axis=None, out=None):返回a中指定轴线上最小值的下标
  • numpy.argmax(a, axis=None, out=None):返回a中指定轴线上最大值的下标
  • numpy.percentile(a, q[, axis, out, ...]) :返回a中指定轴线上qth 百分比数据。q=50表示 50% 分位。你可以用列表或者数组的形式一次指定多个 q
  • numpy.nanpercentile(a, q[, axis, out, ...]):返回a中指定轴线上qth 百分比数据。q=50表示 50% 分位。
  • numpy.partition(a, kth, axis=-1, kind='introselect', order=None):它将数组执行划分操作:第 位左侧的数都小于第 ;第 位右侧的数都大于等于第 。它返回划分之后的数组
  • numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None):返回执行划分之后的下标(对应于数组划分之前的位置)。

2、排序

    

  • numpy.sort(a, axis=-1, kind='quicksort', order=None):返回a在指定轴上排序后的结果(并不修改原数组)。

    • kind:字符串指定排序算法。可以为'quicksort'(快速排序),'mergesort'(归并排序),'heapsort'(堆排序)
    • order:在结构化数组中排序中,用于设置排序的字段(一个字符串)
  • numpy.argsort(a, axis=-1, kind='quicksort', order=None):返回a在指定轴上排序之后的下标(对应于数组划分之前的位置)。

  • numpy.lexsort(keys, axis=-1)

    • 如果keys为数组,则根据数组的最后一个轴的最后一排数值排列,并返回这些轴的排列顺序。如数组ashape=(4,5),则根据a最后一行(对应于最后一个轴的最后一排)的5列元素排列。这里axis指定排序的轴 。对于argsort,会在最后一个轴的每一排进行排列并返回一个与a形状相同的数组。
    • 如果keys为一维数组的元组,则将这些一维数组当作行向量拼接成二维数组并按照数组来操作。
  • numpy.searchsorted(a, v, side='left', sorter=None):要求a是个已排序好的一维数组。本函数将v插入到 a中,从而使得数组a维持一个排序好的数组。函数返回的是v应该插入的位置。side指定若发现数值相等时,插入左侧left还是右侧right

    • 如果你想一次插入多个数值,可以将v设置为列表或者数组。
    • 如果sorter=None,则要求a已排序好。如果a未排序,则要求传入一个一维数组或者列表。这个一维数组或者列表给出了 a的升序排列的下标。(通常他就是argsort的结果)
    • 它并不执行插入操作,只是返回待插入的位置。

3. 均值和方差
  • numpy.sum(a, axis=None, dtype=None, out=None, keepdims=False):计算a在指定轴上的和

  • numpy.prod(a, axis=None, dtype=None, out=None, keepdims=False):计算a在指定轴上的乘积

  • numpy.median(a[, axis, out, overwrite_input, keepdims]):计算a在指定轴上的中位数(如果有两个,则取这两个的平均值)

  • numpy.average(a[, axis, weights, returned]):计算a在指定轴上的加权平均数

  • numpy.mean(a[, axis, dtype, out, keepdims]) :计算a在指定轴上的算术均值

  • numpy.std(a[, axis, dtype, out, ddof, keepdims]):计算a在指定轴上的标准差

  • numpy.var(a[, axis, dtype, out, ddof, keepdims]) :计算a在指定轴上的方差。方差有两种定义:

  • numpy.nanmedian(a[, axis, out, overwrite_input, ...]) :计算a在指定轴上的中位数,忽略NaN

  • numpy.nanmean(a[, axis, dtype, out, keepdims]) :计算a在指定轴上的算术均值,忽略NaN

  • numpy.nanstd(a[, axis, dtype, out, ddof, keepdims]):计算a在指定轴上的标准差,忽略NaN

  • numpy.nanvar(a[, axis, dtype, out, ddof, keepdims]) :计算a在指定轴上的方差,忽略NaN

  • 4、相关系数
    • numpy.corrcoef(x[, y, rowvar, bias, ddof]) : 返回皮尔逊积差相关
    • numpy.correlate(a, v[, mode]) :返回两个一维数组的互相关系数
    • numpy.cov(m[, y, rowvar, bias, ddof, fweights, ...]):返回协方差矩阵

直方图:

  • numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False):返回ar中所有不同的值组成的一维数组。如果ar不是一维的,则展平为一维。

    • return_index:如果为True,则同时返回这些独一无二的数值在原始数组中的下标
    • return_inverse:如果为True,则返回元素数组的值在新返回数组中的下标(从而可以重建元素数组)
    • return_counts:如果为True,则返回每个独一无二的值在原始数组中出现的次数
  • numpy.histogram(a, bins=10, range=None, normed=False, weights=None, density=None):计算一组数据的直方图。如果a不是一维的,则展平为一维。bins指定了统计的区间个数(即统计范围的等分数)。range是个长度为2的元组,表示统计范围的最小值和最大值(默认时,表示范围为数据的最小值和最大值)。当densityFalse时,返回a中数据在每个区间的个数;否则返回a中数据在每个区间的频率。weights设置了a中每个元素的权重,如果设置了该参数,则计数时考虑权重。它返回的是一个元组,第一个元素给出了每个直方图的计数值,第二个元素给出了直方图的统计区间的从左到右的各个闭合点 (比计数值的数量多一个)。

    • normed:作用与density相同。该参数将被废弃
    • bins也可以为下列字符串,此时统计区间的个数将通过计算自动得出。可选的字符串有:'auto''fd''doane''scott''rice''sturges''sqrt'
  • numpy.histogram2d(x, y, bins=10, range=None, normed=False, weights=None) :计算两组数据的二维直方图

  • numpy.histogramdd(sample, bins=10, range=None, normed=False, weights=None) :计算多维数据的直方图

  • numpy.bincount(x[, weights, minlength]):计算每个数出现的次数。它要求数组中所有元素都是非负的。其返回数组中第i个元素表示:整数ix中出现的次数。要求x必须一维数组,否则报错。weights设置了x中每个元素的权重,如果设置了该参数,则计数时考虑权重。minlength指定结果的一维数组最少多长(如果未指定,则由x中最大的数决定)。

  • numpy.digitize(x, bins, right=False) :离散化。如果x不是一维的,则展平为一维。它返回一个数组,该数组中元素值给出了x中的每个元素将对应于统计区间的哪个区间。区间由bins这个一维数组指定,它依次给出了统计区间的从左到右的各个闭合点。rightTrue,则表示统计区间为左开右闭合(];为False,则表示统计区间为左闭合右开[)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值