numpy.where与numpy.random.multinomial用法

本文介绍NumPy库中的where函数两种用法:带x,y参数时的条件判断应用及仅带条件参数时的坐标获取应用,并演示了random模块中binomial函数的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

umpy.where() 有两种用法:

  1. np.where(condition, x, y) 满足条件(condition),输出x,不满足输出y
  2. np.where(condition) 只有条件 (condition),没有xy,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。

1. np.where(condition, x, y)

满足条件(condition),输出x,不满足输出y。

import numpy as np
aa = np.arange(10)
Out[4]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.where(aa,1,-1)
Out[5]: array([-1,  1,  1,  1,  1,  1,  1,  1,  1,  1])   # 0为False,所以第一个输出-1

2. np.where(condition)

只有条件 (condition),没有x和y,则输出满足条件 (即非0) 元素的坐标 (等价于numpy.nonzero)。这里的坐标以tuple的形式给出,通常原数组有多少维,输出的tuple中就包含几个数组,分别对应符合条件元素的各维坐标。

np.where(aa > 5)
Out[6]: (array([6, 7, 8, 9], dtype=int64),)
aa[np.where(aa > 5)] 
Out[7]: array([6, 7, 8, 9])

numpy.random.multinomial函数

这是 numpy 提供的随机二项式分布实现,二项式分布(binomial distribution)如下表示:

函数原型如下:

numpy.random.RandomState.binomial(n, p, size=None)

表示对一个二项分布进行采样,size表示采样的次数,参数中的n, p分别对应于公式中的n,pn,p,函数的返回值表示n成功(success)的次数(也即NN)。 举个例子,比如掷骰子,一共3个硬币,每个都投一次,三个都是正面朝上的概率是多少?

这个使用简单的概率统计知识很容易计算得到:

 

 使用上述函数计算大概值则是做足够多次的试验,统计其中全为正面朝上的概率,通过频率计算概率,如下:

实验结果


参考:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值