上一篇博客我们绘图时使用了numpy库,这一张我们详细介绍Numpy
四.Numpy
4.1Numpy介绍
Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。
numpy介绍【了解】
一个开源的Python科学计算库
计算起来要比python简洁高效
Numpy使用ndarray对象来处理多维数组
ndarray介绍【了解】
NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合。
生成numpy对象:np.array()
ndarray的优势【掌握】
内存块风格
list -- 分离式存储,存储内容多样化
ndarray -- 一体式存储,存储类型必须一样
ndarray支持并行化运算(向量化运算)
ndarray底层是用C语言写的,效率更高,释放了GIL
numpy是深拷贝(复制,粘贴),python是浅拷贝
(创建了快捷方式)
4.2N维数组-ndarray
4.3基本操作
主要会这些
创建数组【掌握】
生成0和1的数组
np.ones()
np.ones_like()
从现有数组中生成
np.array -- 深拷贝
np.asarray -- 浅拷贝
生成固定范围数组
np.linspace()
nun -- 生成等间隔的多少个
np.arange()
step -- 每间隔多少生成数据
np.logspace()
生成以10的N次幂的数据
生层随机数组
正态分布
里面需要关注的参数:均值:u, 标准差:σ
u -- 决定了这个图形的左右位置
σ -- 决定了这个图形是瘦高还是矮胖
np.random.randn()
np.random.normal(0, 1, 100)
均匀
np.random.rand()
np.random.uniform(0, 1, 100)
np.random.randint(0, 10, 10)
数组索引【知道】
直接进行索引,切片
对象[:, :] -- 先行后列
数组形状改变【掌握】
对象.reshape()
没有进行行列互换,新产生一个ndarray
对象.resize()
没有进行行列互换,修改原来的ndarray
对象.T
进行了行列互换
数组去重【知道】
np.unique(对象)
np.random.rand(d0, d1, ..., dn)
返回[0.0,1.0)内的一组均匀分布的数。
np.random.uniform(low=0.0, high=1.0, size=None)
功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右开,即包含low,不包含high.
参数介绍:
low: 采样下界,float类型,默认值为0;
high: 采样上界,float类型,默认值为1;
size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出mnk个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致。
np.random.randint(low, high=None, size=None, dtype='l')
从一个均匀分布中随机采样,生成一个整数或N维整数数组,
取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。
下面是演示