python中的lect()以及choo()的用法

更新时间:2023-07-07 16:24:29 阅读: 评论:0

python中的lect()以及choo()的⽤法
⼀、什么是np.lect()
顾名思义,这个函数⽤⽤来“ 根据某⼀些条件 ” 来筛选出 “某⼀些元素 ”的函数,⽐如我有⼀个数组,我如果⽤if-el语句去做,当然也可以,⽐如我们让⼩于6的元素各⾃加上10,⼤于等于6的元素统统变为100,我们可以这么做,代码如下:
a=np.array([1,2,3,4,5,6,7,8,9,10])
aa=[]一年级上册语文书
for i in a:
if (i<6):
i=i+10
el:
i=100
aa.append(i)
过去式的用法
print(aa)
运⾏结果为 [11, 12, 13, 14, 15, 100, 100, 100, 100, 100]
但是这样做的缺点就是效率太过于低下,因为这样做就是使⽤循环,条件判断去完成,lect()函数就是专门针对这种情况提出来的。
1、lect函数的定义
def lect(condlist, choicelist, default=0):
condlist参数:操作数据所依据的条件
choicelist参数:根据condlist条件,索要执⾏的操作
返回值:返回的是⼀个“ 列表” 。
注意上⾯的condlist和choicelist都必须是写成“ 列表 ”的形式。
要实现上⾯同样的操作,这⾥只需要⼀句话就可以完成
a=np.array([1,2,3,4,5,6,7,8,9,10])
condlist=[a<6] #第⼀个参数,必须⽤【】括起来,列表形式
print(condlist)
罗尔沙赫氏测验choicelist=[a+10] #第⼆个参数,必须⽤【】括起来,列表形式
print(choicelist)
aa=np.lect(condlist,choicelist,default=100)
print(aa)
程序运⾏的结果为
[array([ True, True, True, True, True, Fal, Fal, Fal, Fal,Fal])]
[array([11, 12, 13, 14, 15, 16, 17, 18, 19, 20])]
[11 12 13 14 15 100 100 100 100 100] #由此可见,依然得到的是上⾯的结果。
什么意思呢?可以这样理解,对于第⼀个参数condlist=[ a<6 ],我们将a<6看成是⼀个条件,只不过这个条件是针对array类型的a的,第⼆个参数choicelist所要执⾏的操作是依据condlist⽽⾔的,即这⾥的 [a+10]⾥⾯的a+10这个操作,和 [a<6]这个⾥⾯的,a<6是对应关系的,即当第⼀条件⾥的每个元素满⾜条件的时候,即为True的时候,就执⾏相应的操作,如果为fal,那么久不执⾏,⽽对于不满⾜的元素,则执⾏默认的值,即default。
2、lect() 对于多条件、多操作的筛选和执⾏翻译英语单词
⽐如针对⼀个数组,我们规定⼩于6的就加上10,介于10~15之间的就平⽅,⼤于20的就乘以10,其他的就默认变为100.
a=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]])
condlist=[a<6,np.logical_and(a>10,a<16),a>20] #参数⼀,定义三个限制条件
print(condlist)
choicelist=[a+10,a**2,a*10] #参数⼆,定义三个不同的操作
print(choicelist)
aa=np.lect(condlist,choicelist)
print(aa)
print(’=======================================’)
运⾏结果为:
[[ 11 12 13 14 15] #第⼀⾏分别加上了10
[ 0 0 0 0 0]
[121 144 169 196 225] #第三⾏每个数分别进⾏了平⽅
[ 0 0 0 0 0]
虚词有哪些
[210 220 230 240 250]] #第五⾏每个数分别乘以10
3、lect函数总结
参数⼀,condlist=【条件⼀,条件⼆,条件三,,,,】
参数⼆,choicelist=【操作⼀,操作⼆,操作三,,,,,】
在线汉英词典
只有每个条件中,对应为true的才会执⾏相对应的操作,最终所有条件都不满⾜的元素,则执⾏默认值default。
⼆、np.choo()函数
choo()函数,顾名思义,也是通过某⼀些条件去“选择”相关的元素,choo的操作会⽐⾃⼰使⽤for-if-el效率要⾼。
1、choo()函数的定义
def choo(a, choices, out=None, mode=‘rai’):
参数 a :它必须是⼀个 int 型的 数组,并且 a 中的元素,必须是0~n-1之间的数,这⾥的n表⽰的就是数组choices数组最外层的维度数。choices:表⽰的是要操作的数组,要注意的是choices的数组的维度是⼀定要和a进⾏匹配的,如果匹配不了,会出现错误。
参数out:接收运算结果的数组,它的维度⼀定要和 a 是⼀样的,是可选参数。
参数mode:默认的是rai,表⽰的是a数组中的元素不能超过 n ,她还有两个可选值,
clip:将 a 中的元素如果⼩于0,则将其变为0,如果⼤于n-1,则变为n-1
wrap:将a中的值 value变为value mod n,即值除以n的余数。
2、choo的应⽤
(1)当a和choices都是相同维数的时候——a为1维,choices为1维
result=np.array([0,0,0,0,0])
aa=np.choo([4,2,1,3,0],[11,22,33,44,55],out=result) #当a,与choices的尾数相同的时候
print(aa)
print(result) #result是out输出的,这⾥和aa的结果是⼀样的
运⾏结果:
[55 33 22 44 11]
[55 33 22 44 11] #⼆者的结果是⼀样的,这个地⽅使⽤了out,mode参数使⽤的是默认值
总结:因为choices的 n 为5,所以 a 中的元素不能够超过5 ,它代表的是 choices中的 索引index。11对应0,22对应1,33对应
2,44对应3,55对应4.
(2)当a的维数⽐choices的维数多的时候——a为2维,choices为1维
bb=np.choo([[4,2,1,3,0],[3,4,2,0,1],[0,2,1,4,3]],[11,22,33,44,55])
print(bb)
会计证换证运⾏结果为:
[[55 33 22 44 11]
[44 55 33 11 22]
[11 33 22 55 44]] # a 中的每⼀个索引 都分别与choices 对应着的。
(3)当a的维数⽐choices的维数少的时候——a为1维,choices为2维
cc=np.choo([4,2,1,3,0],[[11,22,33,32,31],[44,55,66,65,64],[77,88,99,98, 97],[111,222,333,332,331],
[444,555,666,665,664]])
print(cc)
运⾏结果为:
日文翻译
[444 88 66 332 31] # 444 对应于 choices[4,0],88对应于 choices[2,1],66 对应于 choices[1,2],332 对应于 choices
[3,3],31 对应于 choices[0,4]爆破英语
总结:由此可知,choices的最外层索引index依然是与a进⾏匹配的,但是内层索引是按照从0开始,0、1、2、3、4逐渐递增的。鉴于此,choices的内层元素数量依然要与a的个数进⾏匹配才⾏,否则会报错。
(4)当a的维数和choices的维数都是多维的时候——a为2维,choices为2维
dd=np.choo([[4,2,1,3,0],[3,4,2,0,1],[0,2,1,4,3]],[[11,22,33,32,31],[44, 55,66,65,64],[77,88,99,98,97],
[111,222,333,332,331],[444,555 ,666,665,664]])
print(dd)
运⾏结果为:
[[444 88 66 332 31]
[111 555 99 32 64]
[ 11 88 66 665 331]] #运算过程同上⾯的 (3)是类似的
总结:从上⾯的⼏个例⼦可以看出,choo最终的输出结果是和 a ⼀样的。a中的数值不能超过choices的索引值,但是没有要求⼀定要a 和choices维度相同。
3、choo的综合应⽤
beginnersa=[[1,0,2],[2,1,0],[2,0,1]]
c1=[[1,2,3],[4,5,6],[7,8,9]]
choices=[c1,100,c2]
result=np.choo(a,choices)
print(result)
运⾏结果为:
[[100 2 33]
[ 44 100 6]
[ 77 8 100]] #原理同上
总结:choo()是根据给出的index值对choice参数获取,最后返回⼀个列表。

本文发布于:2023-07-07 16:24:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1083904.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条件   元素   数组   操作   参数   匹配   列表   定义
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图