numpy库
在处理成千上万的数据时,Python的1维列表已经不适合来对数据进行处理,效率会很慢,所以numpy就诞生了,他可以将列表变成数组,而数组可以是1维、2维、3维甚至更高纬度,可用于存储和处理大型的矩阵,此外numpy提供了大量的数学函数,包括数学、逻辑、形态操作、排序、选择,输出和输入、离散型傅立叶变换、基本线性代数,统计运算和随机模拟等等。几乎从事python 工作的数据分析师都利用Numpy的强大功能!!!
对numpy.ndarray的理解
- 图片:其实就是数组组成的,而且是三维数组
- RGB 红是red,绿是green,蓝是blue
- RGB 的范围就是:0~255
- 读取图片的数据plt.imread
- 显示图片是plt.imshow
- 可以说万物皆可是数据
- 查看形状用ndarray.shape
-
图片:3维数据(彩色)、2维数据(黑白)
-
视屏:4维数据,视屏就是一张张图片针(x, 1000, 1000, 3),x代指图片是第几张。
-
一切皆数据,一切皆矩阵
创建ndarray
- ndarray是NumPy中表式数组的重要类型
- 优先级和常见的数据类型
-
NumPy默认ndarray所有元素的类型相同
-
如果传进来的列表中数据不统一,则会按照优先级进行统一数据类型,优先级:str > float > int
-
ndarray的常见数据类型:
1)int : int8、uint8、int16、int32、int64
2)float: float16、float32、float64
3)str: 字符串
- 优先级演示
使用np的routines函数
1)np.ones(shape, dtype=None, order=‘C’)
- 创建一个所有元素都为1的多维数组
参数说明:
- shape:形状
- dtype=None: 元素类型
- order:{‘C’, ‘F’},可选,默认值:C是否在内存中以行主(C-风格)或列主(Fortran-风格) 顺序存储多维数据,一般默认即可
2)np.zeros(shape, dtype=float, order=‘C’)
- 创建一个所有元素都为0的多维数组。
3)np.full(shape, fill_value, dtype=None, order=‘C’)
- 创建一个所有元素都为指定元素的多维数组,其中fill_value是指定填充值。
4)np.eye(N, M=None, k=0, dtype=float)
- 对角线为1其他的位置为0的二维数组
参数说明:
- N: 行数
- M: 列数,默认为None,表示和行数一样
- k=0:向右偏移0个位置
- dtype=None: 元素类型
5)np.linspace(start,stop, num=50,endpoint=True,retstep=False,dtype=None)
- 创建一个等差数列
参数说明:
- start:开始
- stop:结束
- num=50:等差数列中默认有50个数
- endpoint = True: 是否包含结束值
- retsep = False: 是否返回等差值(步长)
- dtype = None: 元素类型
6)np.arange([start,]stop,[step,]dtype=None)
- 创建一个数值范围的数组
- 和Python中range功能类似
参数说明:
- start:开始值(可选)
- stop:结束值(不可含)
- step:步长(可选)
- dtype=None:元素类型
7)np.random.randint(low,high=None,size=None,dtype=‘l’)
- 创建一个随机整数的多维数组
参数说明:
- low:最小值
- high=None:最大值
- high=None时,生成的数值在[0, low) 区间内
- 如果使用high这个值,则生成的数值在[low, high) 区间
- size=None:数组形状,默认只输出一个随机值
- dtype=None:元素类型b
8)np.random.randn(d0, d1, …, dn)
-
创建一个服从正态分布的多维数组
标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0, 1) 标准正态分布,在0左右出现的概率最大,越远离出现的概率越小
9)np.random.normal(loc=0.0, scale=1.0, size=None)
- 创建一个服从正态分布的多维数组
参数说明:
- loc=0.0:均值,对应着正态分布的中心
- scale:标准差,对应分布的宽度,scale越大,正态分布的曲线越矮胖,scale越小,曲线越高瘦
- size=None:数组形状
10)np.random.random(size=None)
- 创建一个元素为0~1(左闭右开)的随机数的多维数组
参数说明:
- size=None:数组形状
11)np.random.rand(d0, d1,…,dn)
- 和np.random.random的效果一样
- 用法区别如下:在规定几行几列时,不用写size=