python choice用法_python numpy choose用法及代码示例
从索引数组和一组数组中构造一个数组以供选择。
首先,如果感到困惑或不确定,请务必看一下示例-完全具有通用性,此函数不如下面的代码描述所示简单(在ndi =numpy.lib.index_tricks):
np.choose(a,c) == np.array([c[a[I]][I] for I in ndi.ndindex(a.shape)])。
但这省略了一些微妙之处。这是一个完全概括的摘要:
给定一个整数的“index”数组(a)和n个数组(选择项)的序列,根据需要首先将a和每个选择数组广播到具有共同形状的数组;称这些Ba和Bchoices [i],i = 0,…,n-1,我们必然Ba.shape == Bchoices[i].shape每个i。然后,一个新的形状Ba.shape创建如下:
如果mode=raise(默认值),那么,首先,a(以及Ba)的每个元素都必须在[0,n-1]范围内;现在,假设i(在该范围内)是Ba中(j0,j1,…,jm)位置处的值-那么新数组中相同位置处的值就是Bchoices [i]中相同位置处的值位置;
如果mode=wrap,(因此,Ba)中的值可以是任何(有符号)整数;模算术用于将[0,n-1]范围以外的整数映射回该范围;然后按照上面的方法构造新数组;
如果mode=clip,(因此,Ba)中的值可以是任何(有符号)整数;负整数映射到0;大于n-1的值映射到n-1;然后按上述方法构造新数组。
参数:a: : int array
该数组必须包含[0,n-1]中的整数,其中n是选择的数目,除非mode=wrap或者mode=clip,在这种情况下,任何整数都是允许的。
choices: : sequence of arrays
选择数组。和所有选择必须广播为相同的形状。如果choices本身是一个数组(不建议使用),则其最外面的维度(即对应于choices.shape[0])被视为定义了“sequence”。
out: : array, 可选参数
如果提供,结果将被插入此数组。它应该具有适当的形状和dtype。请注意,如果mode ='raise',则out总是被缓冲;使用其他模式以获得更好的性能。
mode: : {‘raise’ (default), ‘wrap’, ‘clip’}, 可选参数
指定将如何处理[0,n-1]以外的索引:
‘raise’:an exception is raised
‘wrap’:value becomes value mod n
‘clip’:values < 0 are mapped to 0, values > n-1 are mapped to n-1
返回值:merged_array: : 数组
合并结果。
异常:ValueError:shape mismatch:
如果和每个选择数组都不能全部广播为相同形状。
注意:
为了减少误解的机会,即使名义上支持以下“abuse”,也不应将选择视为单个数组,也不应将其视为单个数组,即最外面的sequence-like容器应该是列表或元组。
例子:
>>> choices = [[0, 1, 2, 3], [10, 11, 12, 13],
... [20, 21, 22, 23], [30, 31, 32, 33]]
>>> np.choose([2, 3, 1, 0], choices
... # the first element of the result will be the first element of the
... # third (2+1) "array" in choices, namely, 20; the second element
... # will be the second element of the fourth (3+1) choice array, i.e.,
... # 31, etc.
... )
array([20, 31, 12, 3])
>>> np.choose([2, 4, 1, 0], choices, mode='clip') # 4 goes to 3 (4-1)
array([20, 31, 12, 3])
>>> # because there are 4 choice arrays
>>> np.choose([2, 4, 1, 0], choices, mode='wrap') # 4 goes to (4 mod 4)
array([20, 1, 12, 3])
>>> # i.e., 0
几个示例说明了如何选择广播:
>>> a = [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
>>> choices = [-10, 10]
>>> np.choose(a, choices)
array([[ 10, -10, 10],
[-10, 10, -10],
[ 10, -10, 10]])
>>> # With thanks to Anne Archibald
>>> a = np.array([0, 1]).reshape((2,1,1))
>>> c1 = np.array([1, 2, 3]).reshape((1,3,1))
>>> c2 = np.array([-1, -2, -3, -4, -5]).reshape((1,1,5))
>>> np.choose(a, (c1, c2)) # result is 2x3x5, res[0,:,:]=c1, res[1,:,:]=c2
array([[[ 1, 1, 1, 1, 1],
[ 2, 2, 2, 2, 2],
[ 3, 3, 3, 3, 3]],
[[-1, -2, -3, -4, -5],
[-1, -2, -3, -4, -5],
[-1, -2, -3, -4, -5]]])
python choice用法_python numpy choose用法及代码示例相关推荐
- python画羊_python编程羊车门问题代码示例
问题: 有3扇关闭的门,一扇门后面停着汽车,其余门后是山羊,只有主持人知道每扇门后面是什么.参赛者可以选择一扇门,在开启它之前,主持人会开启另外一扇门,露出门后的山羊,然后允许参赛者更换自己的选择. ...
- python代码画图案-python如何绘制iPhone手机图案?(代码示例)
本篇文章给大家带来的内容是介绍python如何绘制iPhone手机图案?(代码示例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 虽然我用不起苹果手机,但我可以用python画出 ...
- python代码大全和用法用量_Python numpy.stack()用法及代码示例
numpy.stack()函数用于沿新轴连接相同尺寸数组的序列.axis参数指定结果轴尺寸中新轴的索引.例如,如果axis = 0,它将是第一个尺寸:如果axis = -1,它将是最后的尺寸. 用法: ...
- python中squeeze函数_Python numpy.squeeze()用法及代码示例
当我们要从数组形状中删除一维条目时,将使用numpy.squeeze()函数. 用法: numpy.squeeze(arr, axis=None ) 参数: arr :[数组]输入数组. axis : ...
- python中all的用法_python中all用法
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 开发准备cas 的 python sdk 包含了用于访问和操作 cas 的所有 ...
- python中len的用法_Python len函数用法
1 在Python中,要知道一个字符串有多少个字符(以获得字符串的长度),或者一个字符串需要多少字节,可以使用len函数.len函数的基本语法格式如下: 2 其中string用于指定要计算长度的字符串 ...
- python npv 计算公式_Python numpy 中常用的数据运算
Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.--<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...
- python fmod函数_Python numpy.fmod方法代码示例
本文整理汇总了Python中numpy.fmod方法的典型用法代码示例.如果您正苦于以下问题:Python numpy.fmod方法的具体用法?Python numpy.fmod怎么用?Python ...
- Java choose函数_Python numpy.choose函数方法的使用
numpy.choose numpy.choose(a, choices, out=None, mode='raise') [source] 从索引数组和一组数组中构造一个数组以供选择. 首先,如果感 ...
最新文章
- 用Python和项目进行机器学习(初学者) Machine Learning A-Z with Python with Project (Beginner)
- DFA确定性有穷自动机及其化简
- 撩课-Web大前端每天5道面试题-Day12
- select fd_set
- FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)
- Mac版Anaconda安装Tweepy包
- 神清气爽,小妹妹,先给她示范了一遍红色警戒
- strcat在某种特定条件下的优化
- 行车路途出现意外6个急救绝招
- c语言实验--九九乘法表,C语言实验报告(四)
- 牛客网Python笔试技巧、单行多行输入方法以及代码调试技巧
- MIME类型完整列表
- 免费c++图片操作库(类)
- Apache启动失败,请检查相关配置。√MySQL5.1已启动。
- 读论文,第十三天:DualRing: Enabling Subtle and Expressive Hand Interaction with Dual IMU Rings
- English:英语学习口诀(实用)
- 判断字符串是否是数字
- LVTTL转LVDS GM8285C,28位LVDS发送器,替代GM8283
- 速联2.0 实现SCADA软件远程无线监控环保设备
- 新字体引用本地运行可以获得,放到服务器上报404