本文主要是介绍菜鸟笔记-Numpy函数-full/random.randint/random.choice,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
full函数
numpy.full
是 NumPy 库中的一个函数,它用于创建一个具有指定形状、数据类型和填充值的数组。此函数非常有用,因为它允许你快速生成一个具有相同值的数组,而无需手动设置每个元素。
1函数介绍
numpy.full(shape, fill_value, dtype=None, order='C')
shape
: 数组的形状,可以是一个整数或整数元组。fill_value
: 用于填充数组的值。dtype
: 数组的数据类型。如果未指定,则将从fill_value
中推断数据类型。order
: 指定数组在内存中的存储顺序。'C' 表示 C 风格的顺序(行优先),'F' 表示 Fortran 风格的顺序(列优先),'A' 表示原始顺序,'K' 表示元素在内存中的出现顺序。
2示例
示例 1:创建一维数组
import numpy as np # 创建一个长度为 5 的一维数组,所有元素的值都是 7
arr = np.full(5, 7)
print(arr)
结果输出:
[7 7 7 7 7]
示例 2:创建二维数组
import numpy as np # 创建一个 2x3 的二维数组,所有元素的值都是 10
arr = np.full((2, 3), 10)
print(arr)
输出结果:
[[10 10 10]
[10 10 10]]
示例 3:指定数据类型
import numpy as np # 创建一个长度为 3 的一维数组,所有元素的值都是 3.14,数据类型为 float
arr = np.full(3, 3.14, dtype=float)
print(arr)
输出结果:
[3.14 3.14 3.14]
import numpy as nparr = np.full_like([[1,2,3],[4,5,6]],8)
print(arr)
输出结果:
[[8 8 8]
[8 8 8]]
import numpy as nparr = np.full_like([[1,2,3],[4,5,6]],[7,8,9])
print(arr)
[[7 8 9]
[7 8 9]]
import numpy as nparr = np.full_like([[1,2,3],[4,5,6]],[[7],[8]])
print(arr)
输出结果:
[[7 7 7]
[8 8 8]]
3注意点
numpy.full
与numpy.zeros
和numpy.ones
有些相似,但numpy.full
允许你指定填充值,而不仅仅是 0 或 1。- 在使用
numpy.full
时,请确保你明确知道fill_value
的数据类型,以避免不必要的数据类型转换。
random.randint函数
numpy.random.randint
是 NumPy 库中用于生成随机整数的函数。这个函数允许你指定一个范围(包括开始和结束值),然后返回在这个范围内均匀分布的随机整数。
1函数介绍
numpy.random.randint(low, high=None, size=None, dtype='l')
low
:生成的随机整数的最小值(包含)。high
:生成的随机整数的最大值(不包含)。如果未指定,则high
将被设置为low
的值,且函数将返回一个等于low
的随机整数。size
:输出的形状。如果提供了,则输出将是给定形状的数组。默认是None
,表示返回一个标量。dtype
:输出数组的数据类型。默认是np.int
(通常是np.int32
或np.int64
,取决于平台)。
2示例
示例 1:生成单个随机整数
import numpy as np # 生成一个介于 0(包含)和 10(不包含)之间的随机整数
random_int = np.random.randint(0, 10)
print(random_int)
输出结果:
4【输出可能是 0 到 9 之间的任意一个整数。】
示例 2:生成一个随机整数数组
import numpy as np # 生成一个形状为 (3,) 的数组,包含介于 0 和 10 之间的随机整数
random_ints = np.random.randint(0, 10, size=(3,))
print(random_ints)
输出结果类似于:
[5 1 1]
示例 3:生成一个一维随机整数数组
import numpy as nprandom_ints_2d = np.random.randint([3,5,7],10)
print(random_ints_2d)
#生成3个随机数,一维数组,分别介于[3,10)、[5,10)、[7,10)之间
类似结果于:
[8 8 9]
例:
import numpy as nprandom_ints_2d = np.random.randint(3,[10,100,5])
print(random_ints_2d)
#生成3个随机数,一维数组,分别介于[3,10)、[3,100)、[3,5)之间
类似结果于:
[ 5 41 4]
例:
import numpy as nprandom_ints_2d = np.random.randint([3,50,1],[10,100,5])
print(random_ints_2d)
#生成3个随机数,一维数组,分别介于[3,10)、[50,100)、[1,5)之间
类似结果于:
[ 9 96 1]
示例4:生成一个二维随机整数数组
import numpy as np # 生成一个形状为 (2, 3) 的二维数组,包含介于 0 和 10 之间的随机整数
random_ints_2d = np.random.randint(0, 10, size=(2, 3))
print(random_ints_2d)
输出结果类似于:
[[2 9 0]
[3 3 9]]
3注意点
numpy.random.randint
返回的整数是均匀分布的,即在给定范围内,每个整数被选中的概率是相同的。- 如果你只提供一个参数给
numpy.random.randint
,那么它会被当作high
参数,而low
默认为 0。例如,np.random.randint(5)
将返回一个介于 0(包含)和 5(不包含)之间的随机整数。 - 生成的随机整数是伪随机数,它们是由一个确定的算法生成的,因此每次你运行相同的代码时,如果随机数生成器的种子没有改变,你将得到相同的随机序列。
random.choice
numpy.random.choice
用于从给定的一维数组或数字序列中随机选择元素。这个函数在需要随机抽样时非常有用,无论是从一组数值中还是从一个更复杂的一维数组(如字符串列表或对象数组)中。
1函数介绍
numpy.random.choice(a, size=None, replace=True, p=None)
参数解释
a
:- 类型:1-D array-like or int。
- 描述:如果
a
是一个整数,则定义从0
到a-1(小于a的非负整数)
的整数数组。如果a
是一个数组,则从a
中随机抽取元素。
size
:- 类型:整数或整数元组(可选)。
- 描述:输出数组的形状。如果提供了形状,则函数将返回一个指定形状的数组,其中每个元素都是从
a
中随机选择的。如果未指定(默认为None
),则返回一个标量。
replace
:- 类型:布尔值(可选)。
- 描述:是否允许替换。如果
True
(默认值),则抽取的元素可以重复出现。如果False
,则抽取的元素不会重复出现,直到所有元素都被抽取。
p
:- 类型:1-D array-like(可选)。
- 描述:与
a
形状相同的序列,用于指定每个元素被抽取的概率。如果没有提供,则假定所有元素具有相同的抽取概率。
返回值
- 类型:ndarray。
- 描述:从
a
中随机抽取的数组,其形状由size
参数指定。
2示例
示例 1:从整数范围中随机选择
import numpy as np # 从 0 到 4(包含)中随机选择一个整数
choice = np.random.choice(5)
print(choice)
输出结果类似于:
1
例:
import numpy as npabc=np.random.choice(5,10)
print(abc)
从小于5的非负整数中随机选择10个
输出结果类似于:
[2 4 3 2 0 0 0 3 0 0]
例:
import numpy as npabc=np.random.choice([80,70,60,10,50,40],(3,5))
print(abc)
从指定的数据中随机选择15个,输出结果类似于:
[[70 80 40 60 40]
[70 60 40 80 40]
[50 80 40 60 70]]
示例 2:从数组中随机选择元素
import numpy as np # 创建一个数组
arr = np.array(['apple', 'banana', 'cherry']) # 从数组中随机选择一个元素
choice = np.random.choice(arr)
print(choice)
输出结果类似于:
apple
示例 3:随机选择多个元素(不替换)
import numpy as np # 创建一个数组
arr = np.array([1, 2, 3, 4, 5]) # 从数组中随机选择 3 个不重复的元素
choices = np.random.choice(arr, size=3, replace=False)
print(choices)
输出结果类似于:
[3 1 2]
示例 4:使用自定义概率进行随机选择
import numpy as np # 创建一个数组
arr = np.array(['a', 'b', 'c', 'd']) # 定义每个元素被选择的概率
probs = np.array([0.1, 0.1, 0.6, 0.2]) # 根据定义的概率从数组中随机选择一个元素
choice = np.random.choice(arr, p=probs)
print(choice)
结果输出类似于:
d
3注意事项
- 当
replace
为False
时,如果a
中的元素数量小于size
,则numpy.random.choice
函数将引发一个ValueError
,因为无法在不替换的情况下抽取足够的唯一元素。 p
参数必须与a
的形状相匹配,并且所有概率之和必须为 1。如果未提供p
,则假定所有元素的选择概率相等。numpy.random.choice
返回的数组的数据类型与a
的数据类型相同(或兼容)。
这篇关于菜鸟笔记-Numpy函数-full/random.randint/random.choice的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!