Numpy.diff函数的原理

本文深入解析Numpy的diff函数,通过实例展示如何使用该函数进行数组元素间的差分计算。详细介绍了参数`n`(执行减法次数)和`axis`(轴的选择)的用法,并分别解释了在`axis=0`、`axis=1`和`axis=2`情况下的计算原理及结果形状变化。通过理解这些概念,可以更灵活地在不同维度上应用numpy的差分操作。
摘要由CSDN通过智能技术生成

记录Numpy.diff函数的个人理解

基本使用

np.diff()做了数组中元素的减法。比如:

m = np.array([1,3,10])
n = np.diff(m)
print(n)

对[1,3,10]数组计算后的结果是:[2 7]。显然,3-1=2,10-3=7,基本用法很简单。若要进一步使用,就要知道这个函数有哪些参数以及参数的意义。

np.diff的参数

它的用法:

x = np.diff(arr,n,axis= )

arr——进行操作的数组对象。

n——执行减法的次数。默认值是1。比如:

m = np.array([7,11,18,20])
n1 = np.diff(m)
n2 = np.diff(m,2)

n1为[4,7,2]——11-7,18-11,20-18
n2为[3,-5]——7-4,2-7

axis——轴的选择,0代表0轴,1代表1轴,以此类推。比如:

a = np.array([ [[1,1,1,1],[1,3,2,1],[3,2,0,1]],[[2,1,1,1],[5,2,2,2],[6,1,0,1]]])

a.shape是(2, 3, 4),说明它的axis共有3个轴可供选择:0轴,1轴,2轴。且0轴对应2个维度,1轴对应3个维度,2轴对应4个维度。给axis设置不同的值,数组中元素相减的模式就会不同,最后输出结果的shape也不同。

接下来介绍每一种不同维度相减模式。

axis=0

设置axis为0,即在0轴的维度下进行元素的相减,方法是后一个维度的元素减去前一个维度的元素。
设置0轴的示意图
相减的过程就是:

2-1,1-1,1-1,1-1
5-1,2-3,2-2,2-1
6-3,1-2,0-0,1-1

然后得到一个数组如下图,我们设它为a1。设置0轴的结果
a1.shape是(1, 3, 4),比原数组a在0轴上少了一个维度。

axis=1

设置axis为1,即在1轴的层面进行相邻维度的元素减法。
方法:1轴2维度的元素减去1轴1维度的元素,1轴3维度的元素减去1轴2维度的元素。
在这里插入图片描述
因为0轴的每个维度中都有3个1轴的维度,所以这样的减法总共进行两组。
相减的过程就是:
1-1,3-1,2-1,1-1
3-1,2-3,0-2,1-1

5-2,2-1,2-1,2-1
6-5,1-2,0-0,1-1

然后得到一个数组如下图,我们设它为a2。
在这里插入图片描述
a1.shape是(2, 2, 4),比原数组a在1轴上少了一个维度。

axis=2

同理,设置为2的例子不做过多的赘述了。总之就是2轴的4个维度做3次减法,最后得到的数组是一个(2,3,3)的数组。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值