numpy

发布于:2022-12-20 ⋅ 阅读:(403) ⋅ 点赞:(0)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

数组拆分

1,垂直拆分

 

 

2,水平拆分

numpy基本加减和取行操作

 

矩阵删除、插入、尾部添加操作(delete,insert,append) 

1,delete

2,

insert()函数

 

 

 3.

append()函数

 np.random.choice(a, size, replace, p)

 

 np.argmax(a, axis=None, out=None)

拉平操作 ravel()和faltten()及reshape(1,-1)的区别联系(补充[None,:]操作)

 

 

 

 

 

 

 np.prod() 计算元素乘积

 

把矩阵大于或小于N的元素置M的技巧

 

 

 

 

 random.rand和random.rand和random.randint区别

产生随机浮点数

np.random.rand() 生成均匀分布矩阵
创建一个矩阵,服从[0,1]随机分布

 

np.random.randn() 生成正太分布矩阵

创建一个矩阵,服从N(0,1)标准正太分布。
一般正太分布N = ( μ , σ 2 ) N=(\mu ,\sigma^2)N=(μ,σ 2 )可通过 sigma * np.random.randn(…) + m 实现

 np.randm.randint() 生成离散均匀分布的整数值组成的矩阵

 python 断言 assert

 

 

乘法之间的区别
星号( * ) 和 .dot 和 np.multiply 的区别联系
A * B 表示 A 和 B 的对应元素相乘,其中 A 和 B 大小一致
np.multiply 与星号用法一致,均表示对应元素相乘
而 .dot 是矩阵运算中的点乘, A 的列数需要等于 B 的行数。

np.pad()函数进行padding操作
语法:

pad(array, pad_width, mode, **kwargs)返回值:数组

参数解释:

array——表示需要填充的数组;
pad_width——表示每个轴(axis)边缘需要填充的数值数目。
参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。取值为:{sequence, array_like, int}
mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;

填充方式:

‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x, y)时前面用x填充,后面用y填充,缺省值填充0
‘edge’——表示用边缘值填充
‘linear_ramp’——表示用边缘递减的方式填充
‘maximum’——表示最大值填充
‘mean’——表示均值填充
‘median’——表示中位数填充
‘minimum’——表示最小值填充
‘reflect’——表示对称填充
‘symmetric’——表示对称填充
‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面

#在数组A的边缘填充constant_values指定的数值
#(3,2)表示在A的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充3个宽度的0,比如数组A中的95,96两个元素前面各填充了3个0;在后面填充2个0,比如数组A中的97,98两个元素后面各填充了2个0
#(2,3)表示在A的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充2个宽度的0,后面填充3个宽度的0
np.pad(A,((3,2),(2,3)),‘constant’,constant_values = (0,0)) #constant_values表示填充值,且(before,after)的填充值等于(0,0)
 

 

 

 

 

np.meshgrid() 快速生成网格

 

 这样就组合成 (1,4) (3,4) (5,4) (1,6) (3,6) (5.6) 的网格点
np.hstack() 和 np.vstack() 用于堆叠矩阵
注意下面的 M 是 tuple 形式,如 (x,y),x和y均为 np.array 形式的矩阵
np.vstack(M) 用于沿着竖直方向将矩阵堆叠起来
np.hstack(M) 用于沿着水平方向将矩阵堆叠起来

 

 

numpy 取整

np.round 和 np.around 一致,均是四舍五入运算,默认取整,可通过 decimals 调整小数位数
np.floor 是向下取整操作
np.ceil 是向上取整操作

 

 

 

 

np.newaxis 在特定位置增加一个维度

记着 c[:,np.newaxis] 是将矩阵c再加一个维度,如果c是一维的,那么这个表达式是将 c 变成列向量, c[np.newaxis,:] 是将矩阵 c 变成行向量。

 

python 广播机制
Numpy要求输入的数组shape一致,当shape不一致的时候,则会使用广播机制,调整数组的shape一致,否则出错。
广播的原则:如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符,或其中的一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。

这句话乃是理解广播的核心。广播主要发生在两种情况,一种是两个数组的维数不相等,但是它们的后缘维度的轴长相符,另外一种是有一方的长度为1。

广播机制的四条规则如下:

1、让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分都通过在前面加1补齐

2、输出数组的shape是输入数组shape的各个轴上的最大值

3、如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错

4、当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值