【Python常用函数】一文让你彻底掌握Python中的numpy.clip函数

大数据时代的到来,使得很多工作都需要进行数据挖掘,从而发现更多有利的规律,或规避风险,或发现商业价值。

而大数据分析的基础是学好编程语言。

本文和你一起来探索Python中的clip函数,让你以最短的时间明白这个函数的原理。

也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。

本文目录
  1. 安装numpy包

  2. clip函数定义

  3. clip函数实例

    3.1 导入库创建一个随机数组

    3.2 对数组应用clip函数进行截取

    3.3 对列表应用clip函数进行截取

    3.4 对数据框应用clip函数进行截取

    3.5 对数据框中的字母应用clip函数进行截取


一、安装numpy包

clip是numpy库下的函数,调用需先要安装numpy包。打开cmd,安装语句如下:

pip install numpy
由于numpy库是数据分析最常用的库之一,所以我早就安装过了,再安装会提示如下内容:


二、clip函数定义

clip函数的功能是对列表、数组、数据框等中的元素进行截取赋值其基本调用语法如下:

import numpy
numpy.clip(a, a_min, a_max, out=None, **kwargs)
a:要进行截取的输入数组或数据框,必填项
a_min:截取的最小值。如果数组或数据框的元素小于该值,将使用该值进行截取赋值必填项
a_max:截取的最大值。如果数组或数据框的元素大于该值,将使用该值进行截取赋值必填项
out:要输出的数组或数据框,默认值为None,也可以是原array,非必填项
注:clip函数返回的是一个新的数组,原始数组不会被修改。

三、clip函数实例

1   导入库创建一个随机数组

首先导入numpy库,生成一个随机数组,具体代码如下:

import numpy as np 
#创建一个随机数组arr = np.random.rand(3, 4)arr

np.random.rand(3, 4):生成一个三行四列的数组。

得到结果:


  对数组应用clip函数进行截取

接着应用clip函数对数组进行截取,代码如下:

#对数组进行截取,最小值为0.2,最大值为0.5clipped_arr = np.clip(arr, 0.2, 0.5)
#输出截取后的数组print(clipped_arr)

得到结果:

[[0.40703361 0.5        0.2        0.3345096 ] [0.2        0.26588612 0.2        0.32224684] [0.2        0.2869247  0.5        0.5       ]]
从结果知,clip函数通过设置数组的最小值和最大值,把数组中大于0.5的值截取为0.5,同时把小于0.2的值截取为0.2。
为了核实注,我们打印一下原始数据,代码如下:
print(arr)
得到结果:

可以发现原始数组并没有改变,clip截取后生成了新的数组。


  对列表应用clip函数进行截取

为了对比,对列表应用clip函数进行截取,代码如下:

list1 = [1, 2, 3, 4]np.clip(list1, 2, 3)

得到结果:

array([2, 2, 3, 3])
可以发现,clip函数把高于3的数值截取为3,低于2的数值截取为2。

  对数据框应用clip函数进行截取

为了对比,对数据框应用clip函数进行截取,先生成原始数据框,代码如下:

import pandas as pd 
df = pd.DataFrame(np.random.rand(3, 4))df

得到结果:

然后应用clip函数进行截取赋值,代码如下:
np.clip(df, 0.2, 0.7)

得到结果:

可以发现clip函数把数据框中高于0.7和低于0.2的值都截取赋值成端点值了。

  对数据框中字母应用clip函数进行截取

为了对比,对数据框中的字母应用clip函数进行截取,先生成原始数据框,代码如下:

cs1 = pd.DataFrame([['a', 'aa'], ['b','bb'], ['c', 'cc']])cs1

得到结果:

然后应用clip函数进行截取赋值,代码如下:
np.clip(cs1, a_min='a' , a_max='b')
得到结果:

可以发现clip函数把排序高于字母b的项都变成了b,且bb项也变成了b。

至此,Python中的clip函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。

【限时免费进群】群内讨论学习Python、玩转Python、风控建模、人工智能、数据分析相关问题,还提供招聘推信息、优秀文章、学习视频,也可交流工作中遇到的相关问题。需要的朋友添加微信号19967879837,加时备注想进的群,比如风控建模。

往期回顾:

一文囊括Python中的函数,持续更新。。。

一文囊括Python中的有趣案例,持续更新。。。

一文囊括Python中的数据分析与绘图,持续更新。。。

一文囊括风控模型搭建(原理+Python实现),持续更新。。。



限时免费进群

19967879837

添加微信号、手机号

请使用浏览器的分享功能分享到微信等