美文网首页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