一、np.percentile函数
在数据分析中,我们常常需要了解数据的分布情况,知道数据在何种程度上占比较高或较低,np.percentile()函数就能够帮助我们实现这一需求。
np.percentile(a, q, axis=None, out=None)
其中,a表示需要计算的数据,q表示求解的分位数,axis表示需要计算的数据的轴向,out表示可选参数。
二、np.percentile函数用法
np.percentile函数主要用于计算数据在不同百分位数的值,例如,想知道一组数据在90%的百分位数处的值,就可以这样写:
import numpy as np
data=np.array([1,2,3,4,5,6,7,8,9,10])
np.percentile(data,90)
输出结果为9.1。
需要注意的是,np.percentile函数中的q参数是一个数组,即可以计算多个分位数,并返回对应结果:
np.percentile(data, [20, 50, 80])
输出结果为array([2.8, 5.5, 8.2])。
三、np.percentile 计算原理
要理解np.percentile函数的计算原理,需要先了解“分位数”的概念,分位数是指将所有数按大小顺序排序后,按照百分数的大小,将其分为100份,每份的数据量即为1%。其中,中位数就是50%的分位数。
np.percentile函数在计算分位数时,采用向下取整的方式计算。例如,计算数据在50%百分位数上的值,如果总数据数量为n,那么就找到排序后位置为n/2的数据,这就是50%分位数。
四、np.percentile函数怎么用
np.percentile函数可以应用于各种数据分析的场景,例如,可以用于计算数据集的平均数、中位数、众数、四分位数等。在金融、医疗等领域,也可用于分析数据分布,评估数据提取效率。
五、np.percentile()函数超详解
np.percentile函数功能强大,具有很多可选参数:
- axis参数表示对数据的哪个维度进行计算,默认值为None,表示计算整个数据的分位数;
- out参数表示计算结果输出的位置,默认值为None,表示直接返回结果;
- interpolation参数表示计算分位数时使用的插值方式,默认为linear(线性插值),还可以选择lower(向下取整)、higher(向上取整)、nearest(离值最近的整数)的插值方法。
举个例子,计算一个3D张量数据的80%分位数:
data=np.random.rand(4,5,6)
np.percentile(data,80,axis=(0,1))
输出结果为一个长度为6的向量。
六、np.percentile函数超详解
在图像处理中,np.percentile函数也有很好的应用,可以实现多种图像处理的功能,例如对图像的亮度调整、图像的对比度增强等。下面举一个图像亮度调整的例子:
import matplotlib.pyplot as plt
import skimage.data
image=skimage.data.astronaut()
p3, p97 = np.percentile(image, (3, 97))
image_rescale = exposure.rescale_intensity(image, in_range=(p3, p97))
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(8, 5), sharex=True, sharey=True)
ax = axes.ravel()
ax[0].imshow(image, cmap='gray')
ax[0].set_title('Before')
ax[1].imshow(image_rescale, cmap='gray')
ax[1].set_title('After')
fig.tight_layout()
plt.show()
上面的代码将一张宇航员照片进行了亮度调整,输出结果为一个子图,左边为原图,右边为调整后的图。
七、np.percentile函数语法
总体来说,np.percentile函数的语法简单而又灵活。
np.percentile(a, q, axis=None, out=None)
在使用时需要确定好计算的数据、需要计算的分位数、计算的轴向、输出结果的位置等参数,具体使用可以根据自己的需求灵活选择。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/152745.html