Python Numpy基础超级无敌快速上手
前言
本文中使用的是anaconda下的Jupyter Notebook。该交互式笔记本的基本使用方法已在前段时间贴出,可自行查看Jupyter Notebook使用
首先导入模块numpy
import numpy as np
查看numpy的版本号(注意是双下划线)
一、Python List特点
为什么不直接使用Python中的List而要使用NumPy的array?首先我们需要了解List的优缺点。
从上图可以看出,List中的元素不受数据类型的限制,可以是数字也可以是字符串,并不会报错,所以List的优点在于很灵活,但同时也引出它的缺点,效率相对来说较低下,因为需要检查每一个元素的类型。
二、Python array的特点
Python中也有限定只能存储一种类型元素的数组,即array。导入模块array:
import array
上图中可以看出arr中元素的数据类型为int整数类型,再赋值为字符串时就会报错,但是array本身也有一个缺点,即存储的数据只是看做一个二维数组,并不能看作矩阵或向量,所以也就不配备矩阵和向量有关的运算,于是,numpy.array是最好的选择,机器学习中的数据大多是依靠矩阵和向量的运算处理问题。
三、numpy.array基本创建方法
可以看出和List的操作基本相同,索引、赋值等,所以很熟悉List的操作方法的情况下上手np.array是很快的。赋值为字符串时会报错。通过dtype方法查看np.array数组的数据类型:
在整型的情况下对数组中的元素赋值为浮点数:
可以发现以上的操作合法运行并没有报错,但写入数组的数值依旧是一个整型数据,这是np.array进行了隐式类型转换,向下取整,截位操作,在以后的实验里这个方面要多加注意。
四、其他创建np.array的方法
np.zero()
传入的第一个参数为大小,若传入一个数,则创建一个二维数组;若可以传入一个元组,则创建的就是一个矩阵。
第二个参数是数据类型,dtype=int是将array的数据类型改为整型。同样通过dtype方法查看元素数据类型,观察发现,输出的数组元素为0.这是浮点数,np.array默认的数据类型是浮点数类型,而我们在进行机器学习的过程中使用的数据基本上都是浮点数。
np.ones()
np.ones()的使用和np.zeros()的使用是一样的,只是由元素全为0,变为元素全为1。
np.full()
第一个参数为大小,第二个参数为要填入的数字,参数的名字可有可没有,加上参数名字可以更加方便的供他人阅读。
np.arange
python中的range和numpy中的arange:
它们之间也有细微的差别,python中的range的步长不能为浮点数而np.arange中是可以的。
np.linspace
注意!第三个参数不是步长!!np.linspace(0,20,10)意思是在0到20的区间上,等长的取10个点(包括0和20)
五、np.random
np.random.randint
随机生成0到10之间的整数
第三个参数为大小,同样可以传入一个数或一个元组。(取不到终止位置即第二个参数,是左闭右开的)
np.random.seed()
python中的随机数是伪随机数,我们可以通过seed来控制随机数。
np.random.random()
随机生成0到1之间的数:
np.random.normal()
所谓标准正太分布(μ=0, σ=1),对应于np.random.normal(loc=0, scale=1, size)
六、查看帮助文档
方法一:help
方法二:?
对你有帮助的话,点个赞再走吧~