随机Numpy数组的创建方法 (第2讲)
🍹博主 侯小啾 感谢您的支持与信赖。☀️
🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ
✨本博客收录于专栏Python数据分析宝典.。
✨专栏特点:
①逻辑清晰,循序渐进,符合初学者思维,内容友好程度高。
②内容精炼,且不失重点,入门时间周期短。性比价高。
③能够兼容非科班,如金融,经济,统计,数学等专业的小伙伴。
④附实战案例加持,搭乘数分精通之路的直通车!
✨更多精彩内容敬请期待,小啾持续为您输出中!
文章目录
- 1.`rand()` 函数
- 2.`random()`函数
- 3. `randint()`函数
- 4.`randn()`函数
- 5.`normal()`函数
- 6.`seed()` 随机数种子
- 7.`shuffle()` 与 `permutation() ` 随机排序
- 8. `choice()`随机抽样
1.rand()
函数
在Python
的NumPy
库中,rand
函数用于生成一个指定形状的随机数数组。
随机数的值介于0和1之间。
rand
函数的基本语法如下:
numpy.random.rand(d0, d1, ..., dn)
参数说明:
d0, d1, ..., dn
:可选参数,定义了生成的随机数数组的形状。
代码示例:
import numpy as np
# 生成一个随机数
random_num = np.random.rand()
print(f"随机数: {random_num}")
# 打印分割线
print("-" * 20)
# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.rand(3)
print(f"一维随机数数组:\n{arr1}")
# 打印分割线
print("-" * 20)
# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.rand(2, 3)
print(f"二维随机数数组:\n{arr2}")
输出:
需要注意的是,rand
函数生成的随机数是从[0, 1)区间内的均匀分布中随机抽取的。可以通过设置d0, d1, ..., dn
参数来指定生成的随机数数组的形状。如果不指定这些参数,则返回一个随机数。
2.random()
函数
在Python
的NumPy
库中,random
函数用于生成指定形状的随机数数组。该函数返回一个由[0, 1)区间内的随机数构成的数组。
random
函数的基本语法如下:
numpy.random.random(size=None)
参数说明:
size
:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。
示例使用:
import numpy as np
# 生成一个随机数
random_num = np.random.random()
print(random_num)
print("-" * 20)
# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.random(3)
print(arr1)
print("-" * 20)
# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.random((2, 3))
print(arr2)
输出:
3. randint()
函数
在Python的NumPy库中,randint
函数用于生成指定范围内的随机整数。该函数返回一个由随机整数构成的数组。
randint
函数的基本语法如下:
numpy.random.randint(low, high=None, size=None, dtype=int)
参数说明:
low
:生成随机整数的最低值(包含)。high
:可选参数,生成随机整数的最高值(不包含)。如果未提供,则生成的随机整数范围为[0, low)。size
:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。dtype
:可选参数,输出数组的数据类型,默认为整数类型。
示例使用:
import numpy as np
# 生成一个随机整数
random_num = np.random.randint(0, 10)
print(random_num)
print("-" * 20)
# 生成一个形状为(3,)的一维随机整数数组
arr1 = np.random.randint(0, 10, size=3)
print(arr1)
print("-" * 20)
# 生成一个形状为(2, 3)的二维随机整数数组
arr2 = np.random.randint(0, 10, size=(2, 3))
print(arr2)
输出:
randint
函数生成的随机整数范围是闭区间[low, high),即包含最低值low
而不包含最高值high
。可以通过设置size
参数来指定生成的随机整数数组的形状。如果不提供high
参数,则默认范围为[0, low)。
4.randn()
函数
在Python的NumPy库中,randn
函数用于生成具有标准正态分布(均值为0,方差为1)的随机数数组。该函数返回一个由随机数构成的数组。
randn
函数的基本语法如下:
numpy.random.randn(d0, d1, ..., dn)
参数说明:
d0, d1, ..., dn
:可选参数,定义了生成的随机数数组的形状。
示例使用:
import numpy as np
# 生成一个随机数
random_num = np.random.randn()
print(random_num)
print("-" * 20)
# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.randn(3)
print(arr1)
print("-" * 20)
# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.randn(2, 3)
print(arr2)
输出:
需要注意的是,randn
函数生成的随机数来自于标准正态分布(均值为0,方差为1)。可以通过设置d0, d1, ..., dn
参数来指定生成的随机数数组的形状。如果不指定这些参数,则返回一个随机数。
5.normal()
函数
在Python的NumPy库中,normal
函数用于生成具有指定均值和标准差的随机数数组。该函数返回一个由随机数构成的数组,这些随机数来自于正态分布(高斯分布)。
normal
函数的基本语法如下:
numpy.random.normal(loc=0.0, scale=1.0, size=None)
参数说明:
loc
:可选参数,指定正态分布的均值(默认为0)。scale
:可选参数,指定正态分布的标准差(默认为1)。size
:可选参数,指定生成的随机数数组的形状。可以是一个整数或一个由整数组成的元组。
示例使用:
import numpy as np
# 生成一个随机数
random_num = np.random.normal()
print(random_num)
print("-" * 20)
# 生成一个形状为(3,)的一维随机数数组
arr1 = np.random.normal(size=3)
print(arr1)
print("-" * 20)
# 生成一个形状为(2, 3)的二维随机数数组
arr2 = np.random.normal(size=(2, 3))
print(arr2)
normal
函数生成的随机数来自于正态分布(高斯分布),其均值为loc
,标准差为scale
。可以通过设置size
参数来指定生成的随机数数组的形状。如果不提供loc
和scale
参数,则默认均值为0,标准差为1。
6.seed()
随机数种子
在Python的NumPy库中,seed
函数用于设置随机数生成器的种子。使用相同的种子可以确保每次运行程序时生成的随机数是一样的。
seed
函数的基本语法如下:
numpy.random.seed(seed=None)
参数说明:
seed
:可选参数,指定随机数生成器的种子值。可以是任意整数或一个数组。
示例使用:
import numpy as np
# 设置随机数生成器的种子为0
np.random.seed(0)
# 生成两个随机数(使用相同的种子)
random_num1 = np.random.rand()
random_num2 = np.random.rand()
print(random_num1, random_num2)
可以通过重复执行代码,以得到相同的随机数。
需要注意的是,通过设置种子来控制随机数生成可以使得结果可重复。但是在实际应用中,通常不会显式地设置种子,以便获得更好的随机性。
7.shuffle()
与 permutation()
随机排序
在Python的NumPy库中,shuffle
函数用于对数组进行随机重排,permutation
函数也可以实现类似的功能。这两个函数可以用于洗牌、打乱数据集等应用场景。
shuffle
函数和permutation
函数的基本语法如下:
numpy.random.shuffle(x)
numpy.random.permutation(x)
参数说明:
x
:待重排的数组或列表。
示例使用:
import numpy as np
# 使用shuffle函数随机重排一个列表
my_list = [1, 2, 3, 4, 5]
np.random.shuffle(my_list)
print(my_list)
print("-" * 20)
# 使用permutation函数随机重排一个数组
my_array = np.array([1, 2, 3, 4, 5])
shuffled_array = np.random.permutation(my_array)
print(shuffled_array)
输出:
需要注意的是,shuffle
函数直接对原始数组进行随机重排,而permutation
函数返回一个新的随机重排后的数组,不改变原始数组。这两个函数都可以用于一维数组或列表,对于多维数组,它们只会对第一个维度进行重排,保持其他维度的相对位置不变。
8. choice()
随机抽样
在Python的NumPy库中,choice
函数用于从给定的一维数组或列表中随机抽取元素。该函数返回一个随机抽样后的数组或标量。
choice
函数的基本语法如下:
numpy.random.choice(a, size=None, replace=True, p=None)
参数说明:
a
:一维数组或列表,表示要进行随机抽样的数据。size
:可选参数,指定抽样结果的形状。可以是整数,也可以是由整数组成的元组。如果不提供,则返回一个随机抽样的标量。replace
:可选参数,表示是否允许重复抽样。如果为True(默认),则允许重复抽样;如果为False,则不允许重复抽样。p
:可选参数,表示各个元素被抽到的概率。如果未提供,则假定所有元素被抽到的概率相等。
示例使用:
import numpy as np
# 从一维数组中随机抽取一个元素
arr1 = np.array([1, 2, 3, 4, 5])
random_choice1 = np.random.choice(arr1)
print(random_choice1)
print("-" * 20)
# 从一维数组中随机抽取三个元素,允许重复抽样
random_choices1 = np.random.choice(arr1, size=3)
print(random_choices1)
print("-" * 20)
# 从一维数组中随机抽取三个元素,不允许重复抽样
random_choices2 = np.random.choice(arr1, size=3, replace=False)
print(random_choices2)
print("-" * 20)
# 从一维数组中按指定概率抽取一个元素
random_choice2 = np.random.choice(arr1, p=[0.1, 0.2, 0.3, 0.2, 0.2])
print(random_choice2)
输出:
choice
函数可以用于一维数组或列表。如果未提供size
参数,则返回一个随机抽样的标量;如果提供了size
参数,则返回一个具有指定形状的随机抽样结果。可以通过设置replace
参数来控制是否允许重复抽样。可以通过设置p
参数来指定各个元素被抽到的概率,默认情况下假定所有元素被抽到的概率相等。