np.random.random和np.random.randint 的区别
时间: 2023-12-04 13:40:41 浏览: 209
`np.random.random()`和`np.random.randint()`都是numpy库中用于生成随机数的函数,但它们生成随机数的方式不同。
`np.random.random()`生成[0,1)之间均匀分布的随机数,可以通过参数size指定生成的随机数的形状,例如:
```python
import numpy as np
random_array = np.random.random(size=(3, 2)) # 生成一个3行2列的随机数数组
print(random_array)
```
输出:
```
[[0.12345678 0.98765432]
[0.87654321 0.54321098]
[0.23456789 0.3456789 ]]
```
`np.random.randint()`生成指定范围内的随机整数,可以通过参数low和high指定随机整数的范围,参数size指定生成的随机数的形状,例如:
```python
import numpy as np
random_int_array = np.random.randint(low=0, high=10, size=(3, 2)) # 生成一个3行2列的0-9之间的随机整数数组
print(random_int_array)
```
输出:
```
[[7 5]
[4 9]
[2 3]]
```
相关问题
np.random.randint与random.randint
np.random.randint和random.randint都是用于生成随机整数的函数,但是它们有一些不同之处。
np.random.randint是numpy库中的函数,它可以生成指定范围内的随机整数,包括上限和下限。而且可以生成多个随机整数,返回一个数组。
random.randint是Python自带的随机数生成函数,它也可以生成指定范围内的随机整数,包括上限和下限。但是它只能生成一个随机整数。
下面是两个函数的使用示例:
```python
import numpy as np
import random
# 生成一个1到10之间的随机整数
a = np.random.randint(1, 11)
b = random.randint(1, 10)
print(a)
print(b)
# 生成一个1到10之间的5个随机整数
c = np.random.randint(1, 11, 5)
print(c)
```
输出结果:
```
7
9
[ 6 3 2 10 8]
```
解释以下代码 h, w = np.random.randint(1, shape[1]), np.random.randint(1, shape[2]) top, left = np.random.randint(0, shape[1] - h), np.random.randint(0, shape[2] - w) # 在掩膜上设置随机不规则区域 mask[:, top:top+h, left:left+w] = 1. mask[:, top+1:top+h-1, left+1:left+w-1] = 0.
这段代码主要是使用NumPy随机生成两个随机数h和w,它们的范围是从1到shape[1]和从1到shape[2]。然后又使用NumPy随机生成另外两个数top和left,它们的范围是从0到shape[1] - h和从0到shape[2] - w。这段代码的目的可能是生成一个矩形的左上角的坐标和矩形的高和宽,可以用来截取图片的一部分。
阅读全文