Numpy--------(七)

1.1 函数式

1.随机数

    numpy.random.rand()

  • numpy.random.rand(d0, d1, ..., dn):指定形状(d0, d1, ..., dn)创建一个随机的ndarray。每个元素值来自于半闭半开区间[0,1)并且服从均匀分布。

    • 要求d0, d1, ..., dn为整数
    • 如果未提供参数,则返回一个随机的浮点数而不是ndarray,浮点数值来自于半闭半开区间[0,1)并且服从均匀分布
  • numpy.random.randn(d0, d1, ..., dn):指定形状(d0, d1, ..., dn)创建一个随机的ndarray。每个元素值服从正态分布,其中正态分布的期望为0,方差为1。

    • 要求d0, d1, ..., dn为整数或者可以转换为整数
    • 如果di为浮点数,则截断成整数
    • 如果未提供参数,则返回一个随机的浮点数而不是ndarray,浮点数值服从正态分布,其中正态分布的期望为0,方差为1。
  • numpy.random.randint(low[, high, size]):返回一个随机的整数ndarray或者一个随机的整数值。

    • 如果highNone,则表示整数值都取自[0,low)且服从discrete uniform分布(离散均匀分布)。
    • 如果high给出了值,则表示整数值都取自[low,high)且服从discrete uniform分布(离散均匀分布)。
    • size是一个整数的元组,指定了输出的ndarray的形状。如果为None则表示输出为单个整数值。
  • numpy.random.random_integers(low[, high, size]):返回一个随机的整数ndarray或者一个随机的整数值。

    • 如果highNone,则表示整数值都取自[1,low]且服从discrete uniform分布
    • 如果high给出了值,则表示整数值都取自[low,high]且服从discrete uniform分布
    • size是一个整数的元组,指定了输出的ndarray的形状。如果为None则表示输出为单个整数值。它与randint区别在于randint是半闭半开区间,而random_integers是全闭区间。
  • numpy.random.random_sample([size]):返回一个随机的浮点ndarray或者一个随机的浮点值,浮点值是[0.0,1.0)之间均匀分布的随机数。
  • size为整数元组或者整数,指定结果ndarray的形状。如果为None则只输出单个浮点数
  • 如果想生成[a,b)之间均匀分布的浮点数,那么你可以用(b-a)*random_sample()+a
  • 如果size有效,它的效果等于numpy.random.rand(*size); 如果size无效,它的效果等于numpy.random.rand()
  • numpy.random.random([size]):等价于numpy.random.random_sample([size])

  • numpy.random.ranf([size]):等价于numpy.random.random_sample([size])

  • numpy.random.sample([size]):等价于numpy.random.random_sample([size])

numpy.random.choice(a[, size, replace, p]):从一维数组中采样产生一组随机数或者一个随机数

  • a为一位数组或者int,如果是int则采样数据由numpy.arange(n)提供,即范围为(1,n),否则采用数据由a提供。

  • size为整数元组或者整数,指定结果ndarray的形状。如果为None则只输单个值。

  • replace:如果为True则可以重复采样(有放回的采样);如果为False,则采用不放回的采样。

  • p:为一维数组,用于指定采样数组中每个元素值的采样概率。如果为None则均匀采样。

  • 如果参数有问题则抛出异常:比如a为整数但是小于0,比如p不满足概率和为1,等等。。

numpy.random.bytes(length):返回length长度的随机字节串。length指定字节长度。

        

2.排列组合

    numpy.random.shuffle(x): 原地随机混排x 的内容,返回None。x为array-like 

numpy.random.permutation(x):随机重排x,返回重排后的ndarrayxarray-like对象,不会修改它。

  • 如果x是个整数,则重排numpy.arange(x)。

  • 如果x是个数组,则拷贝它然后对拷贝进行混排,,这样保证不会修改x。

  •      如果x是个多维数则知识混洗它的第0维

3.概率分布函数:下面是共同参数:size若非None,则它指定输出ndarray的形状。如果为None,则输出单个值。

    numpy.random.beta(a, b[, size]):Beta分布。其中a,b都是Beta分布的参数,要求非负浮点数。

   

   numpy.random.binomial(n, p[, size]):二项分布。其中n,p都是二项分布的参数,要求n为大于等于0的浮点数,如果它为浮点数则截断为整数;p[0,1]之间的浮点数。

                                                 

numpy.random.chisquare(df[, size]):卡方分布。其中df为整数,是卡方分布的自由度(若小于等于0则抛出异常)。

      

  • numpy.random.dirichlet(alpha[, size]):狄利克雷分布。其中alpha是个数组,为狄利克雷分布的参数。

  • numpy.random.exponential([scale, size]):指数分布。scale为浮点数,是参数 β。

  • 指数分布的概率密度函数为:

  • numpy.random.f(dfnum, dfden[, size]):F分布。dfnum为浮点数,应该大于0,是分子的自由度; dfden是浮点数,应该大于0,是分母的自由度。

  • numpy.random.gamma(shape[, scale, size]):伽玛分布。其中shape是个大于0的标量,表示分布的形状;scale是个大于0的标量,表示伽玛分布的scale(默认为1)。

  • 伽玛分布的概率密度函数为:

  • 其中k为形状,  为scale

  • numpy.random.geometric(p[, size]):几何分布。其中p是单次试验成功的概率。

  • 几何分布为:

numpy.random.gumbel([loc, scale, size]):甘贝尔分布。其中loc为浮点数,是分布的location of modescale是浮点数,为scale

  • 甘贝尔分布:

  • p(x) = \frac {e^{-(x-\mu)/\beta}}{\beta} e^{-e-(x-\mu)/\beta}         

  • 其中  为location of mode,  为scale。

4、总结

    内容来自网络,侵删。

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nrlmsise-00模型是用于计算大气层密度和温度的模型,它基于美国国家航空航天局(NASA)的个大气层模型。下面是使用Python实现nrlmsise-00模型的步骤: 1. 安装PyNRLMSISE-00库,它是一个Python接口,可以方便地使用nrlmsise-00模型。可以使用以下命令安装: ``` pip install PyNRLMSISE-00 ``` 2. 导入PyNRLMSISE-00库和其他必要的库: ```python from pyglow.pyglow import Point from PyNRLMSISE_00.run import run_nrlmsise_00 import numpy as np import datetime as dt import matplotlib.pyplot as plt ``` 3. 设置输入参数,包括日期、位置和高度: ```python date = dt.datetime(2021, 1, 1, 0, 0, 0) # 日期 lat = 40.0 # 纬度 lon = -105.0 # 经度 alt_km = 0.0 # 高度(公里) ``` 4. 调用run_nrlmsise_00函数计算大气层密度和温度: ```python pt = Point(lat, lon, date, alt_km) pt.run() dens = pt.density temp = pt.temperature ``` 5. 绘制密度和温度的图表: ```python alt_km_arr = np.linspace(0, 100, 1000) dens_arr = np.zeros_like(alt_km_arr) temp_arr = np.zeros_like(alt_km_arr) for i, alt in enumerate(alt_km_arr): pt = Point(lat, lon, date, alt) pt.run() dens_arr[i] = pt.density[0] temp_arr[i] = pt.temperature[0] fig, ax1 = plt.subplots() ax1.plot(dens_arr, alt_km_arr, 'b-', label='Density') ax1.set_xlabel('Density (kg/m^3)') ax1.set_ylabel('Altitude (km)') ax2 = ax1.twiny() ax2.plot(temp_arr, alt_km_arr, 'r-', label='Temperature') ax2.set_xlabel('Temperature (K)') ax2.set_xlim(left=0) fig.legend() plt.show() ``` 以上是使用Python实现nrlmsise-00模型的基本步骤,可以根据需要进行更改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值