Numpy基础-np.random.choice()、np.where()

1、numpy.random.choice()

函数定义:random.choice(asize=Nonereplace=Truep=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, [xy, ]/)

用途:返回根据条件从 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),)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艽野尘梦better

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值