Numpy

Numpy(Numerical Python)开源的Python科学计算库,用于快速处理任意维度的数组。支持常见的数组和矩阵操作。

数学上将一维数组称为向量,将二维数组称为矩阵。另外,可以将一般化之后的向量或矩阵等统
称为张量(tensor)。

使用ndarray对象来处理多维数组。ndarray比python原生的列表list运算效率高。

ndarray

属性

  • ndarray.shape 数据维度的元组,返回(行,列),shape[0]一维数组长度,shape[1]二维数组长度
  • ndarray.ndim 数组维数,返回维数
  • ndarray.size 数组中的元素数量,返回元素数量
  • ndarray.itemsize 一个数组元素的长度,返回数组元素长度
  • ndarray.dtype 数组元素的类型,返回数组元素类型
  • axis = 0,对列数据计算
  • axis = 1,对行数据计算

形状

  • 一维
  • 二维
  • 三维

生成0和1的数组

  • np.ones(shape, dtype)
  • np.zeros(shape,dtype)

W_update=np.zeros_like(W)

函数主要是想实现构造一个矩阵W_update,其维度与矩阵W一致,并为其初始化为全0;这个函数方便的构造了新矩阵,无需参数指定shape大小;

生成数组方式

  • np.array(object, dtype) #深拷贝
  • np.asarray(a,dtype) #浅拷贝

生成固定范围的数组

  • 创建等差数组(指定数量)np.linspace(start, stop, num, endpoint) num为等间隔数量,endpoint表示序列是否包含stop值,默认true
  • 创建等差数组(指定步长)np.arange(start, stop, step, dtype) step为步长
  • 创建等比数列np.logspace(start,stop,num) num为等比数列数量,默认50

正态分布

μ为正态分布的随机变量均值,σ的平方为随机变量方差。μ决定位置,标准差σ决定分布的幅度。方差越大,图线越“胖”,越小越“瘦”。标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。

np.random.rand(d0,d1,…,dn)

  • rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
  • dn表格每个维度
  • 返回值为指定维度的array

np.random.randn(d0, d1, ..., dn)

  • 从标准正态分布中返回一个或多个样本值,具有标准正态分布。
  • dn表格每个维度
  • 返回值为指定维度的array

np.random.randint(low, high=None, size=None, dtype=’l’)

  • 返回随机整数,范围区间为[low,high),包含low,不包含high
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low)

np.random.random_integers(low, high=None, size=None)

  • 返回随机整数,范围区间为[low,high],包含low和high
  • 参数:low为最小值,high为最大值,size为数组维度大小
  • high没有填写时,默认生成随机数的范围是[1,low]

生成[0,1)之间的浮点数

  • np.random.random_sample(size=None)
  • np.random.random(size=None)
  • np.random.ranf(size=None)
  • np.random.sample(size=None)

numpy.random.choice(a, size=None, replace=True, p=None)

  • 从给定的一维数组中生成随机数
  • 参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
  • a为整数时,对应的一维数组为np.arange(a)
  • 当replace为False时,生成的随机数不能有重复的数值
  • 参数p的长度与参数a的长度需要一致;
  • 参数p为概率,p里的数据之和应为1

numpy.random.seed()

  • np.random.seed()的作用:使得随机数据可预测。
  • 当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

np.random.normal(loc=0.0, scale=1.0,size=None)

  • loc:概率分布的均值,float类型
  • scale:概率分布的标准差,float类型,scale越大越矮胖,scale越小越瘦高。
  • size:int或tuple类型

np.random.standard_normal(size=None)

  • 返回指定形状的标准正态分布数组

均匀分布

np.random.uniform(low=0.0 , hight=1.0 ,size=None)

  • 从一个均匀分布[low, high)中随机采样,定义域左闭右开
  • low:采样下界,float类型,默认值0
  • high:采样上界,float类型,默认值1
  • size:输出样本数目,int或tuple类型
  • 返回值:ndarray类型

np.random.randint(low, high=None, size=None, dtype=’l’)

  • 从一个均匀分布中随机采样,生成一个整数或N维整数数组
  • 返回随机整数,范围区间为[low,high),包含low,不包含high
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low)

数组形状修改

ndarray.reshape(shape, order)

  • 返回一个具有相同数据域,但shape不一样的视图,行列不进行互换。shape为[行, 列]

ndarray.resize(new_shape)

  • 修改数组本身的形状(需要保持元素个数前后相同),行列不进行互换

ndarray.T

  • 数组的转置,行列进行互换

数组类型修改

ndarray.astype(type)

  • 返回修改类型后的数组。如exm.astype(np.int32)

ndarray.tostring([order])

  • 构造包含数组中原始数据的字节

数组去重

np.unique()

  • temp=np.array([1,2,3],[3,4,5])
  • np.unique(temp)
  • temp为([1,2,3,4,5])

广播机制(broadcasting)

实现两个或两个以上数组运算,即使数组的shape不完全相同,只需要满足以下任意一个条件即可

  1. 数组的某一维度等长
  2. 其中一个数组的某一维度为1

矩阵乘法

np.matmul(a, b) 禁止矩阵与标量(数字)的乘法

np.dot(a, b)

转换为一维数组

np.flatten()

取元素中最大值对应的索引

np.argmax()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奶油芝士汉堡包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值