栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用另一个一维数组对ND numpy数组进行排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用另一个一维数组对ND numpy数组进行排序

使用

np.take
axis
关键字参数:

>>> a = np.arange(2*3*4).reshape(2, 3, 4)>>> aarray([[[ 0,  1,  2,  3],        [ 4,  5,  6,  7],        [ 8,  9, 10, 11]],       [[12, 13, 14, 15],        [16, 17, 18, 19],        [20, 21, 22, 23]]])>>> b = np.arange(3)>>> np.random.shuffle(b)>>> barray([1, 0, 2])>>> np.take(a, b, axis=1)array([[[ 4,  5,  6,  7],        [ 0,  1,  2,  3],        [ 8,  9, 10, 11]],       [[16, 17, 18, 19],        [12, 13, 14, 15],        [20, 21, 22, 23]]])

如果要使用花式索引,则只需在索引元组中填充足够的空片即可:

>>> a[:, b]array([[[ 4,  5,  6,  7],        [ 0,  1,  2,  3],        [ 8,  9, 10, 11]],       [[16, 17, 18, 19],        [12, 13, 14, 15],        [20, 21, 22, 23]]])

或更一般的情况下:

>>> axis = 1>>> idx = (slice(None),) * axis + (b,)>>> a[idx]array([[[ 4,  5,  6,  7],        [ 0,  1,  2,  3],        [ 8,  9, 10, 11]],       [[16, 17, 18, 19],        [12, 13, 14, 15],        [20, 21, 22, 23]]])

np.take
实际上应该是您的首选。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号