np.clip()
np.clip 是 NumPy 中用于将数组中的值限制在给定范围内的函数。它的语法如下:
numpy.clip(a, a_min, a_max, out=None)
参数说明:
- a : 输入的数组
- a_min: 限定的最小值 也可以是数组 如果为数组时 shape必须和a一样
- a_max:限定的最大值 也可以是数组 shape和a一样 out:剪裁后的数组存入的数组
示例
import numpy as np
a = np.arange(10)
print(a)
print(np.clip(a,3, 8))
print(a)
print(np.clip(a, 3, 6, out=a)) # 修剪后的数组存入到a中
print(a)
# 当a_min为数组时, a中每个元素和都和a_min中对应元素比较
# 0 < 3 -->小于最小值 则等于3
# 3 > 2 -->大于最小值 则等于本身 再和最大值比 没超过最大值 所以为3
print(np.clip(a, [3,4,1,1,7,4,4,4,4,4], 8))
[0 1 2 3 4 5 6 7 8 9]
[3 3 3 3 4 5 6 7 8 8]
[0 1 2 3 4 5 6 7 8 9]
[3 3 3 3 4 5 6 6 6 6]
[3 3 3 3 4 5 6 6 6 6]
[3 4 3 3 7 5 6 6 6 6]
np.diff()
np.diff() 是 NumPy 库中用于计算数组元素之间差异的函数。它计算数组中相邻元素之间的差值,并返回一个新的数组。其语法如下:
np.diff(a, n=1, axis=-1)
参数含义如下:
- a:输入的数组。
- n:可选参数,表示要计算的差值的次数。默认值为1。
- axis:可选参数,表示沿着哪个轴计算差值。默认值为-1,表示最后一个轴。
示例
import numpy as np
arr = np.array([1, 3, 6, 10, 15])
diff_arr = np.diff(arr)
print(diff_arr)
[2 3 4 5]
如何确保差分之后的数组长度和以前的数组长度保持一致呢?我们只需要在np.diff()的时候增加一个新的参数:prepend
import numpy as np
arr = np.array([1, 3, 6, 10, 15])
diff_arr1 = np.diff(arr,prepend=0)
print(diff_arr1)
diff_arr2 = np.diff(arr,prepend=2)
print(diff_arr2)
diff_arr3 = np.diff(arr,prepend=3)
print(diff_arr3)
[1 2 3 4 5]
[-1 2 3 4 5]
[-2 2 3 4 5]
除了我们可以直接自己指定传入的数值大小,我们还可以通过索引、切片的方式来做,其中a[0]=1,a[1]=3:
import numpy as np
arr = np.array([1, 3, 6, 10, 15])
diff_arr2 = np.diff(arr,prepend=arr[0])
print(diff_arr2)
diff_arr3 = np.diff(arr,prepend=arr[1])
print(diff_arr3)
[0 2 3 4 5]
[-2 2 3 4 5]
prepend接受的参数其实在数组a进行差分前,需要排到数组a的开头去,形成新的数组后,才进行差分运算
import numpy as np
arr = np.array([1, 3, 6, 10, 15])
print(np.diff(arr,prepend=arr[0:2]))
[ 2 -2 2 3 4 5]