python中numpy之clip()和随机数组生成

1. python 中 numpy 之 clip() 函数

Numpy 中 clip 函数基础语法

numpy.clip(a, a_min, a_max, out=None)

a 是一个数组;
a_min 表示数组的最小值;
a_max 表示数组的最大值;
将数组中的元素限制在 a_min ,a_max 之间,小于 a_min 的数值让它等于 a_min ,大于 a_max 的数值让其等于 a_max;
out 默认为 None时,a 不变,返回的数组并没有赋值给 a 。
样例:

1.1 一维数组

import numpy as np
# 一维数组
a = np.arange(10)
a_clip = np.clip(a, 3, 8)
print("原来的数组:", a)
print("经过运算后的数组:", a_clip)

输出结果:

[Output:]
原来的数组: [0 1 2 3 4 5 6 7 8 9]
经过运算后的数组: [3 3 3 3 4 5 6 7 8 8]

1.2 多维数组

# 多维数组
b = np.random.randint(1, 20, (3, 4))
b_clip = np.clip(b, 5, 10)
print("原来的多维数组:", b);
print("经过运算后的多维数组:", b_clip)

输出结果:

原来的多维数组: [[ 6 12 15 13]
 [ 1 10 12 11]
 [ 7 11 18 10]]
经过运算后的多维数组: [[ 6 10 10 10]
 [ 5 10 10 10]
 [ 7 10 10 10]]

2. python 随机数组生成

2.1 一维数组生成

np.random.randint 语法:

np.random.randint(low[, high, size])

返回随机的整数,位于半开区间 [low, high),size 表示数组的个数。
例子:

# 随机生成一维整数数组,随机范围[1, 10),5个元素
array1 = np.random.randint(1, 10, 5)
print(array1)
[Output:]
[4 2 5 1 9]

np.random_integers 语法:

np.random_integers(low[, high, size])

返回随机的整数,位于闭区间 [low, high],size 表示数组个数。
例子:

array2 = np.random.random_integers(1, 10, 4)
print(array2)
[Ouput:]
[9 6 5 3]

np.random.randn 语法:

np.random.randn(n)

生成一个标准正态分布的样本,数组数为 n
例子:

array3 = np.random.randn(8)
print(array3)
[output:]
[ 0.38485529  0.93223006 -0.30251032 -0.0776742  -0.1494331   0.92869632
  0.34519346 -0.50091836]

np.random.rand() 语法

np.random.rand(n)

生成 n 个[0.0,1.0)之间的随机浮点数,没有参数 n 时,生成一个随机浮点数;有参数 n 时,生成长度为 n 的一维随机浮点数组。
例子:

array4 = np.random.rand(6)
print(array4)
[Output:]
[0.26122457 0.25746236 0.6528532  0.68066095 0.18878394 0.13258246]

2.2 多维数组生成

使用 np.random.rand() 即可生成多维浮点数数组。
例子:

print(np.random.rand(2, 4))  # 生成2行4列矩阵
[Output:] 
[[0.3499704  0.32819639 0.87229577 0.17463467] [0.62080204 0.1809523  0.20208164 0.65036285]]

使用 np.random.randint() 即可生成多维整数数组。
例子:

array5 = np.random.randint(1, 50, (3, 4))
print(array5)
[Ouput:]
[[ 3 28 18 42]
 [ 2 34 35 38]
 [45 21 44  8]]

暂时学习到这么多,先记录到这里,回头有学到新的方法再进行补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值