亲宝软件园·资讯

展开

Python clip与range

阿黎逸阳 人气:0

你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。从此解放上班时间,研究更多更有效率的工作方法。进一步提升工作效率,让工作更出彩。这不是广告,这是实锤图片。

本文和你一起探索Python常用函数合集,让你以最短的时间明白这些函数的原理。也可以利用碎片化的时间巩固这些函数,让你在处理工作过程中更高效。

一、range函数的定义

range函数的作用是生成一个起始值为start,终值不超过stop,步长为step的等差数列。range函数的基本调用语法如下:

range(start, stop[, step])

start:数组的起始值,可省略,默认值为0。

stop:数组的上限,生成不超过该值的等差数列。

step:步长,可省略,默认值为1,即数组中前后两个数的差值。

二、range函数实例

省略起始值start和步长step

for i in range(6):
    print(i)

得到结果:

0
1
2
3
4
5

可以发现range函数可以省略初始值start(默认值为0)和步长step(默认值为1),并取默认值生成等差数列。

设置初始值终值和步长

for i in range(5, 16, 2):
    print(i)

得到结果:

5
7
9
11
13
15

可以发现range函数生成了一个初始值为5,终值不超过16(最大化),步长为2的等差数列。

三、random.randint函数的定义

random.randint函数是numpy库中的,通常需要先加载numpy库,再调用该函数。函数的基本调用语法如下:

import numpy as np
np.random.randint(low, high=None, size=None, dtype=int)

low:随机生成的数要大于等于该值。

high:随机生成的数要小于该值。

size:控制随机数的尺寸,省略时默认输出单个整数。

random.randint函数的作用是返回一个随机整型数或整型数组或整型数据框。

范围从low(含)到high(不含),即[low, high)。如果未写参数high的值,则数据范围为[0, low)。

四、random.randint函数实例

随机生成5个[0, 6)之间的整数

for i in range(5):
    print(np.random.randint(6))

得到结果:

0
1
5
1
4

可以发现random.randint函数中若只有一个数,则生成一个数据范围为[0, 该数)的整数。

随机生成[-2, 9)之间1维数组

np.random.randint(-2, 9, (1,6))

得到结果:

array([[ 6,  0,  6, -1, -2,  2]])

可以发现random.randint函数中的size取值可以控制数据的维度。第一个数指数据的行数,第二个数指数据的列数。例2生成一个1行6列的数组。

随机生成[5, 10)之间的3行5列数据框

np.random.randint(5, 10, (3, 5))

得到结果:

array([[6, 8, 8, 5, 8],
       [6, 9, 9, 7, 9],
       [9, 7, 7, 7, 8]])

可以发现random.randint函数中的size取值可以控制数据的维度。第一个数指数据的行数,第二个数指数据的列数。例3生成一个3行6列的数据框。

五、clip函数的定义

clip函数是numpy库中的,通常需要先加载numpy库,再调用该函数。clip函数的基本调用语法如下:

import numpy as np
np.clip(a, a_min, a_max, out=None, **kwargs)

a:数组或数据框。

a_min:下界,区间的最小值,a中比a_min小的数都会强制变成a_min。

a_max:上界,区间的最大值,a中比a_max大的数都会强制变成a_max。

out:可以指定输出矩阵的对象,shape与a相同。

该函数的作用是将a中的所有数限定到a_min和a_max这个区间中,超出这个区间的值都被截断设置成界限值。

六、clip函数实例

把数组中的值应用clip函数进行截取

a = np.array(range(1, 10))
a_min = 3
a_max = 8
print(a)
print('======compare======')
print(np.clip(a, a_min, a_max))

得到结果:

[1 2 3 4 5 6 7 8 9]
======compare======
[3 3 3 4 5 6 7 8 8]

compare之前的是原始值,之后的是用clip函数截取之后的值。可以发现clip函数把数组中小于a_min和大于a_max的值都强制变成了界限值。

把数据框中的值应用clip函数进行截取

a = np.random.randint(20, 50, (4, 4))
a_min = 30
a_max = 40
print(a)
print('====compare====')
print(np.clip(a, a_min, a_max))

得到结果:

[[40 39 35 21]
 [29 44 36 46]
 [47 40 40 26]
 [24 24 26 44]]
====compare====
[[40 39 35 30]
 [30 40 36 40]
 [40 40 40 30]
 [30 30 30 40]]

可以发现clip函数把数据框中小于a_min和大于a_max的值都强制变成了界限值。

加载全部内容

相关教程
猜你喜欢
用户评论