Numpy:用于快速处理任意维度的数组,支持常见的数组和矩阵操作
Ndarray:对象是一个快速而灵活的大数据容器
- np.array(【【】,【】】)用于存储
- ndarray在存储数据的时候数据与数据的地址都是连续的,这样就给使得批量操作数组元素时时速度更快
- ndarray中的所有元素的类型都是相同的,可以省掉很多的循环语句
ndarray支持并行化运算(向量化运算) ndarray的属性
ndarray的属性
数组属性反映了数组本身固有的信息。
属性名字 属性解释
ndarray.shape 数组维度的元组
ndarray.ndim 数组维数
ndarray.size 数组中的元素数量
ndarray.itemsize 一个数组元素的长度(字节)
ndarray.dtype 数组元素的类型
np.ones([几行,几列])#生成都为1的数值
np.zeros(【几行,几列】)#生成都为0的数值
生成固定范围的数组
np.linspace(start,stop,num,endpoint)
创建等差数组–指定数量
参数:
start:序列的起始值
stop:序列的终止值
num:要生成的等间隔样列数量,默认为50
endpoint:序列中是否包含stop值,默认为ture
np.arange(start,stop,step,dtype)
创建等差数组—指定步长
参数
step:步长
np.logspace(start,stop,num)
创建等比数列
参数:
num:要生成的等比数列数量,默认为50
生成随机数组
np.random模块
正态分布
正态分布是一种概率分布,正态分布是具有两个参数u和q的连续型随机变量的分布,第一个参数为u是服从正态分布的随机变量的均值,第二个参数q是此随机变量的标准差,正态分布记作N(u,q)
u决定的位置,q其标准决定的幅度
正态分布创建方式
np.random.randn(d0,d1......dn)
功能:从标准正态分布中返回一个或多个样本值
np.random.normal(loc=0.0,scale=1.0,size=None)
np.random.normal(loc=0.0,scale=1.0,size=None)
loc:float
此概率分布的均值(对应着整个分布的中心centre)
scale:float
此概率分布的标准差(对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高)
size:int or tuple of ints
输出的shape,默认为None,只输出一个值
np.random.standard_normal(size = None)
返回指定形状的标准正态分布的数组
均匀分布
np.random.rand(d0,d1,dn)
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:采样下界,flot类型,默认值为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】之间随机整数
形状的修改
ndarray.reshape(shape,order)
返回一个具有相同数据域,但shape不一样的视图
行列不进行互转
在转换形状的时候一定要注意数组的元素匹配
stock_change.reshape([5,4])
stock_change.reshape([-1,10])#数组的形状被修改为:(2,10),-1:表示通过待计算
ndarray.resize(new_shape)
修改数组本身的形状(需要保持元素个数前后相同)
行列不进行互换
stock_change.shape([5,4])
ndarray.T
数组的转置
将数组的行,列进行互换
类型修改
ndarray.astype(type)
返回修改了类型之后的数组
stock_change.astype(np.int32)
ndarray.tostring([order])或者ndarray.tobytes(【order】)
构造包含数组中原始数据字节的python字节
ndarray.tostring([order])或者ndarray.tobytes([order])
构造包含数组中原始数据的python字节
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[12, 3, 34], [5, 6, 7]]])
arr.tostring()
数组的去重
np.unique()
temp = np.array([[1, 2, 3, 4],[3, 4, 5, 6]])
np.unique(temp)
array([1, 2, 3, 4, 5, 6])