首页 > 试题

argmin

更新时间:2022-12-09 02:00:44 阅读: 评论:0

名校推荐初中有难度的教辅-非洲时间现在几点


2022年12月9日发(作者:不用烤箱做蛋糕)

浅谈()的⽤法和t()的⽤法说

()有两种⽤法:

(condition,x,y)

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

如果是⼀维数组,相当于[xvifcelyvfor(c,xv,yv)inzip(condition,x,y)]

>>>aa=(10)

>>>(aa,1,-1)

array([-1,1,1,1,1,1,1,1,1,1])#0为Fal,所以第⼀个输出-1

>>>(aa>5,1,-1)

array([-1,-1,-1,-1,-1,-1,1,1,1,1])

>>>([[True,Fal],[True,True]],#官⽹上的例⼦

[[1,2],[3,4]],

[[9,8],[7,6]])

array([[1,8],

[3,4]])

上⾯这个例⼦的条件为[[True,Fal],[True,Fal]],分别对应最后输出结果的四个值。第⼀个值从[1,9]中选,因为条件为

True,所以是选1。第⼆个值从[2,8]中选,因为条件为Fal,所以选8,后⾯以此类推。类似的问题可以再看个例⼦:

>>>a=10

>>>([[a>5,a<5],[a==10,a==7]],

[["chon","notchon"],["chon","notchon"]],

[["notchon","chon"],["notchon","chon"]])

array([['chon','chon'],

['chon','chon']],dtype='

(condition)

只有条件(condition),没有x和y,则输出满⾜条件(即⾮0)元素的坐标(等价于o)。这⾥的坐标以tuple的形式给

出,通常原数组有多少维,输出的tuple中就包含⼏个数组,分别对应符合条件元素的各维坐标。

>>>a=([2,4,6,8,10])

>>>(a>5)#返回索引

(array([2,3,4]),)

>>>a[(a>5)]#等价于a[a>5]

array([6,8,10])

>>>([[0,1],[1,0]])

(array([0,1]),array([1,0]))

上⾯这个例⼦条件中[[0,1],[1,0]]的真值为两个1,各⾃的第⼀维坐标为[0,1],第⼆维坐标为[1,0]。

下⾯看个复杂点的例⼦:

>>>a=(27).reshape(3,3,3)

>>>a

array([[[0,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,26]]])

>>>(a>5)

(array([0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2]),

array([2,2,2,0,0,0,1,1,1,2,2,2,0,0,0,1,1,1,2,2,2]),

array([0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2]))

#符合条件的元素为

[6,7,8]],

[[9,10,11],

[12,13,14],

[15,16,17]],

[[18,19,20],

[21,22,23],

[24,25,26]]]

所以会输出每个元素的对应的坐标,因为原数组有三维,所以tuple中有三个数组。

需要注意的⼀点是,输⼊的不能直接是list,需要转为array或者为array才⾏。⽐如range(10)和(10)后者返回的是数

组,使⽤才能达到效果。

t()的⽤法

t(a,axis=-1,kind='quicksort',order=None)

argsort(a)#获取a从⼩到⼤排列的数组

argsort(-a)#获取a从⼤到⼩排列的数组

argmin(a)#获取a最⼩值下标

argmax(a)#获取a最⼤值下标

功能:将矩阵a按照axis排序,并返回排序后的下标

参数:a:输⼊矩阵,axis:需要排序的维度

返回值:输出排序后的下标

(⼀维数组)

importnumpyasnp

x=([1,4,3,-1,6,9])

t()

#array([3,0,1,2,4,5],dtype=int64)

可以发现,argsort()是将X中的元素从⼩到⼤排序后,提取对应的索引index,然后输出到y

如x[3]=-1最⼩,x[5]=9最⼤

所以取数组x的最⼩值可以写成:

x[t()[0]]

或者⽤argmin()函数

x[()]

数组x的最⼤值,写成:

x[t()[-1]]#-1代表从后往前反向的索引

或者⽤argmax()函数,不再详述

x[()]

输出排序后的数组

x[t()]

#或

x[t(x)]

(⼆维数组)

x=([[1,5,4],[-1,6,9]])

#[[154]

#[-169]]

沿着⾏向下(每列)的元素进⾏排序

t(x,axis=0)

#array([[1,0,0],

#[0,1,1]],dtype=int64)

沿着列向右(每⾏)的元素进⾏排序

t(x,axis=1)

#array([[0,2,1],

#[0,1,2]],dtype=int64)

补充:l_index()和t()

由于编程和⽂笔都较差,写的不好请见谅...

今天下午学习LDA模型的python实现,其中⽤到了Numpy库,想详细了解⽤到的每个函数,便在⽹上找资料。

其中遇到了l_index()和t(),看了好半天才弄懂orz⼼⾎来潮记录⼀下

讲讲我对t()的理解:

t(a,axis=-1,kind='quicksort',order=None)

参数说明:a要排序的数组,

axis整型或者None,如果是None,数组将变成扁平数组(即变成⼀⾏数组)

kind排序算法,快排,归并排序,堆排序...

order⾃定义字段顺序

返回:index_array:n维下标数组

实例:⼀维数组

⼆维数组

然后讲讲我对l_index的理解~

l_index(indices,dims,order='C')

参数说明:indices数组

dims数组的维度⼤⼩

order:{C,F}(C⾏为主,F列为主)

返回:unraveled_coords为n维数组的元组

实例:这个地⽅想了好久才明⽩TT

简单解释⼀下,22/6=3......4

总算写完了!

以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。如有错误或未考虑完全的地⽅,望不吝赐教。

本文发布于:2022-12-09 02:00:44,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/69657.html

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

上一篇:长横线
下一篇:云繁体
标签:argmin
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图