一、生成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)
生成左闭右开,以2为步长的数组
range(start, stop, step),生成左闭右开以step为步长的列表。
np.arange()跟range()类似。
四、生成随机数组
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()
正态分布
网友评论