美文网首页Python
numpy学习笔记之生成数组

numpy学习笔记之生成数组

作者: cugliming | 来源:发表于2021-03-24 21:37 被阅读0次

    一、生成0和1的数组

    一般用来占位

    • 0数组


      np.zeros
    • 1数组


      np.ones

    注意:上面两图可以看出来,指定数组形状时,shape可以是列表,也可以是元组。

    二、从现在数组中生成

    • np.array()
    • np.copy()
    • np.asarray()
      其中前两者属于深拷贝,而后者属于浅拷贝
      浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
      深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    表现为,用前两个方法生成数组后,如果原数组发生改变,用np.array()和np.copy()生成的新数组不会随之发生变化;而用np.asarray()生成的数组,会随之发生变化:


    生成三个新数组后,对原数组其中一个值进行修改
    c1, c2数组没发生变化,而c3数组发生了变化

    三、生成固定范围的数组

    • numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

      np.linspace
    • numpy.arange(start, stop, step, dtype)
      range(start, stop, step),生成左闭右开以step为步长的列表。
      np.arange()跟range()类似。

      生成左闭右开,以2为步长的数组

    四、生成随机数组

    1. 均匀分布

    • np.random.rand(d0,d1,d2……dn)
      返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
    • np.random.uniform(low=0.0, high=1.0, size=None)
      从一个均匀分布[low, high)中随机采样,定义域左闭右开,size为样本数目
    • numpy.random.randint(low, high=None, size=None, dtype=’l’)
      • 从一个均匀分布中随机采样,返回一个整数或N维整数数组;范围区间为[low,high),包含low,不包含high
      • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
      • high没有填写时,默认生成随机数的范围是[0,low)

    2. 正态分布

    • np.random.randn(d0,d1,d2……dn)
      以给定的形状创建一个数组,数组元素来符合标准正态分布N(0,1) 。

    • np.random.normal(loc=0.0,scale=1.0,size=None)

      • loc: 类型为float,是此概率分布的均值
      • scale: 类型为float,是此概率分布的标准差
      • size : 整形int或整形int的元组,是输出的shape,默认为None
    • np.random.standard_normal(size=None)
      返回指定形状的标准正态分布的数组

    示例:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    data = np.random.normal(loc=1.75, scale=0.1, size=1000000)
    # 1. 创建画布
    plt.figure(figsize=(10, 8), dpi=80)
    
    # 2. 绘制直方图
    plt.hist(data, 1000)
    
    # 3. 显示图像
    plt.show()
    
    正态分布

    相关文章

      网友评论

        本文标题:numpy学习笔记之生成数组

        本文链接:https://www.haomeiwen.com/subject/ybbqhltx.html