1、numpy.random.choice()
函数定义:random.choice(a, size=None, replace=True, p=None)
用途:从给定的一维数组中生成随机样本
参数:
a:一维数组或int类型整数。如果是一维数组,则从其元素中生成随机样本。 如果是 int,则生成随机样本,就好像它是np.arange(a).
size:整数或整数元组,可选。输出形状,如果给定形状是(m, n, k),则产生样本数组维数是(m, n, k)。默认值为“None”,在这种情况下返回单个值。
replace:布尔型,可选。默认值为 True, 这意味着有放回抽取。
p:一维数组,可选。p内元素是a 中的每个元素对应的概率。 如果未给出,则假设样本在所有范围内均匀分布。
返回值:
samples:单个元素或ndarray。生成的随机样本。
示例:
>>> import numpy as np
>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'rabbit', 'Christopher', 'pooh'], dtype='<U11')
2、numpy.where()
函数定义:numpy.where(condition, [x, y, ]/)
用途:返回根据条件从 x 或 y 中选择的元素。
参数:
condition: 类数组的或bool型。哪里为True,则生成 x,否则生成 y。
x, y:类数组的。返回值将从这两个数组中选取。
返回值:
out:ndarray。在条件为 True的地方是来自 x 的元素,在其他地方是来自 y的元素。
示例:
#例1,结果维数和condition一样
>>> np.where([[True, False], [True, True]],
[[1, 2], [3, 4]],
[[9, 8], [7, 6]])
array([[1, 8],
[3, 4]])
#例2
>>> aa = np.arange(10)
>>> np.where(aa,1,-1)
array([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # 0为False,所以第一个输出-1
>>> np.where(aa > 5,1,-1)
array([-1, -1, -1, -1, -1, -1, 1, 1, 1, 1])
#例3
>>> a = 10
>>> np.where([[a > 5,a < 5], [a == 10,a == 7]],
[["chosen","not chosen"], ["chosen","not chosen"]],
[["not chosen","chosen"], ["not chosen","chosen"]])
array([['chosen', 'chosen'],
['chosen', 'chosen']], dtype='<U10')
#例4,不传递x和y,则返回condition为True的位置的索引
>>> a = np.array([2,4,6,8,10])
>>> np.where(a > 5)
(array([2, 3, 4], dtype=int64),)