- Numpy
- ndarray与python list的区别
- ndarray
- 底层内存顺序读写,时间复杂度O(1)
- list
- 底层内存随机读写,消费非常低
- ndarray
- 特性
- 高效性
- Numpy直接使用C语言开发,内部解除了GIL(全局解释器锁),操作速度不受限于python解释器
- 并行计算
- numpy内置并行计算功能,支持多核心多线程计算
- 高效性
- 语法
- ndarray.shape
- 数组维度元祖
- ndarray.ndim
- 数组维数
- ndarray.size
- 数组中元素个数
- ndarray.itemsize
- 一个数组元素的长度
- ndarray.dtype
- 数组元素的数据类型,需要使用type()获取
- np.ones(shape,dtype)
- 创建全1数组,shape元祖传入,dtype控制数据类型
- np.ones_like(a,dtype)
- 创建一个形状与a数组一样的数组,但是其中的值全部为1
- np.zeros(shape,dtype)
- 创建一个维度为shape的数组,其中的值全部为0
- np.zeros_like(a,dtype)
- 创建一个与a数组维度一致的数组,但其中的值全部为0
- 深复制与潜复制
- 深复制
- np.asarray(a,dtype)
- 潜复制
- np.array(object,dtype)
- 深复制
- 生成固定范围的数组
- 等差数组
- np.linspace(start,storp,num,endpoint)
- start : 序列起始值
- stop : 序列终止值
- num : 要生成的元素数量,默认为50
- endpoint : 序列中是否包含stop值,默认为ture
- 差数组-指定步长
- np.arange(start,stop,step,dtype)
- start : 序列起始值
- stop : 序列终止值
- step : 步长
- dtype : 数据类型
- np.arange(start,stop,step,dtype)
- 等比数列
- np.logspace(start,stop,num)
- start : 起始值
- stop : 终止值
- num : 要创建的元素个数
- np.logspace(start,stop,num)
- 等差数组
- 正态分布
- 原理
- 需要关注的参数:
- 均值:u
- 决定了这个图形的左右位置
- 标准差:σ
- 决定了这个图形是瘦高还是矮胖
- 均值:u
- 需要关注的参数:
- np.random.randn(num)
- 从标准正态分布中范围num个值
- np.random.normal(loc=0.0,scale=1.0,size=None)
- loc : float,此概率分布的均值,对应着整个分布的中心center
- scale : float,此概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小越高瘦
- size : int or tuple of ints 输出的shape,默认为none,只输出一个值
- np.random.standard_normal(size=None)
- 返回指定形状的标准正态分布的数组
- 原理
- 均匀分布
- np.random.rand(num)
- 返回num个均匀分布的随机数
- np.random.uniform(low=0.0,high=1.0,size=None)
- 从一个均匀分布[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=‘I’)
- 从一个均匀分布中随机采样,生成一个整数或者N维整数数组
- 取整范围 : 若high不为None时,取[low,high)之间的随机整数,否则取[0,low)之间的随机整数
- np.random.rand(num)
- 数组切片
- 对象[:,:]
- 先行后列,先行限定,然后列限定,就一列那么就不用:符号,如有有多列就用:拼接
- 对象[:,:]
- 形状改变
- ndarray.reshape(shape,order)
- 需要保持修改前后数组本身元素个数一致
- 返回一个具有相同数据域,但shape不一样的视图
- 行列不进行互换
- -1 表示值带计算,只填入一个具体的值就可以
- ndarray.resize(new_shape)
- 修改数组本身的形状,可以更改原数组本身的数据,而relshape则不能修改原本的数据
- 需要保持远元素个数修改前后数量相同
- 行列不进行互换
- ndarray.T
- 数组转置,行转列
- ndarray.reshape(shape,order)
- 类型修改
- ndarray.astype(type)
- 修改数据类型,并返回修改后的数组
- type类型需要使用numpy.类型调用
- ndarray.tostirng([order])或者ndarray.tobytes([order])
- order 指的是可排列的容器存储起来的数据
- 将排序好的数据转换成string类型或者char类型
- ndarray.astype(type)
- 去重
- numpy.unique(ndarray)
- 传入数组后返回一个去重后的数组结果
- numpy.unique(ndarray)
- 逻辑运算
- ndarray[条件] =满足条件赋值
- 通用判断函数
- numpy.all() 全真为真
- numpy.any() 一真为真
- numpy.where(条件,真:赋值为x,假:赋值为y) 三木运算木
- 符合运算符
- 需要结合where使用
- numpy.logical_and_ (条件1,条件2)全真为真
- mumpy.logical_or_(条件1,条件2) 一真为真
- ndarray.shape
- ndarray与python list的区别
科学计算库
最新推荐文章于 2023-07-24 00:08:18 发布