np.unravel_index(indices, shape, order = ‘C’)

一句话概括:求出数组某元素(或某组元素)拉成一维后的索引值在原本维度(或指定新维度)中对应的索引
官网给出的概括是convert a flat index or array of flat indices into a tuple of coordinate arrays.

  • indices: 整数构成的数组, 其中元素是索引值(integer array whose elements are indices into flattened version of array)
  • shape: tuple of ints, 一般是原本数组的维度,也可以给定的新维度。

例:

A = np.random.randiant(1, 100, size = (2, 3, 5))
print(A)
array([[[98, 29, 32, 73, 90],[36, 52, 24,  2, 37],[66, 80, 23, 29, 98]],[[17, 32, 58, 99, 74],[53,  3, 20, 48, 28],[53,  7, 74, 34, 68]]])
#利用argmax求最大值对应的索引
ind_max = np.argmax(A)
print(ind_max)
18
#由观察知, 18是矩阵A中99拉伸成一维之后的索引值, 接下来利用unravel_index求其在自身维度(2,3,5)下的索引值
ind_max_src = np.unravel_index(ind_max, A.shape)
print(ind_max_src)
(1, 0, 3)
#验证此索引值对应的元素为99
print(A[ind_max_src])
99

index可以升维,假设取indices = (4, 7), 此时np.unravel_index输出的结果为3个数组(3即为A的维度),每个数组的第0位为下标为4的元素在A.shape下的下标, 每个数组的第1位为下标为7的元素在A.shape下的下标

inds = np.unravel_index((4, 7), A.shape)
print(inds)
(array([0, 0]), array([0, 1]), array([4, 2]))
#验证
first_ind = (inds[0][0], inds[1][0], inds[2][0])
Sec_ind = (inds[0][1], inds[1][1], inds[2][1])
print(A[first_ind], A[Sec_ind])
90, 24

练习: 100 Numpy Exercise (20)
构造一个维度为6x7x8的数组,并找出第100个元素的索引(x,y,z)

np.unravel_index(99, (6,7,8))

np.unravel_index()相关推荐

  1. numpy 中 np.unravel_index 使用

    最近看到 np.unravel_index 这个函数,不知道这个函数是什么作用,上网查,网上说的也不是很明白,于是自己研究终于算是大体看懂了: 完整函数定义:unravel_index(indices ...

  2. np.unravel_index

    >>> np.unravel_index([22, 41, 37], (7,6))  (array([3, 6, 6]), array([4, 5, 1])) >>> ...

  3. python np.unravel_index(indices, dims, order)

    np.unravel_index(indices, dims, order)的作用:下标从0开始 返回7行6列矩阵中的第22个.第41个.第37个元素的下标(例:22 = 3*6+4,故下标为(3,4 ...

  4. python numpy np.argsort()(返回将对数组进行排序的索引)(不懂区别?)

    from numpy\core\fromnumeric.py @array_function_dispatch(_argsort_dispatcher) def argsort(a, axis=-1, ...

  5. python numpy np.argmax(a, axis=None, out=None) (按给定轴位比较,返回第一个最大值索引【下标】)

    def argmax(a, axis=None, out=None):"""Returns the indices of the maximum values along ...

  6. numpy.unravel_index

    官方文档 numpy.unravel_index(indices, shape, order='C') 将平面索引或平面索引数组转换为坐标数组的元组 参数 indices : array_like 一 ...

  7. numpy.outer、numpy.hanning、numpy.unravel_index学习总结

    np.outer.np.hanning.np.unravel_index学习总结 1.numpy.unravel_index() 2.numpy.outer() 3.numpy.hanning() 最 ...

  8. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  9. 深度有趣 | 27 服饰关键点定位

    简介 介绍如何使用CPM(Convolutional Pose Machines)实现服饰关键点定位 原理 关键点定位是一类常见而有用的任务,某种意义上可以理解为一种特征工程 人脸关键点定位,可用于人 ...

最新文章

  1. ASP.NET 163 smtp服务器响应为:User has no permission
  2. C#创建Word文档
  3. Engineering Department Bulletin News and information for the Department
  4. libsvm中svmtrain的参数和返回值
  5. Spring MVC HttpMessageConverter对象
  6. append 降低数组位数_4.有序数组
  7. Vue2.x双向数据绑定
  8. 设计模式- 策略模式
  9. python中对象的概念是什么_简述Python中的面向对象编程的概念
  10. ngrok服务器搭建 window_.NET开发框架(三)高可用服务器端设计
  11. 【转】 opengl编程学习笔记(三)(2D绘图)
  12. 传入oracle中的日期类型,Oracle中的日期类型及相关函数
  13. 云服务器发送开锁信息给单车,史上超全共享单车车锁的开锁方式(含具体方案)...
  14. c语言系统主函数流程图,c语言流程图【调解方式】
  15. QT语言开发的软件界面UI自动化方法
  16. [ROS2] 你应该知道Costmap_2d 的这些细节
  17. python获取图片长宽高,Python获取图片的大小/尺寸
  18. MeGUI 压片之新手上路
  19. Matlab数值剔除
  20. 图像一阶导数和二阶导

热门文章

  1. java GUI记忆纸牌游戏(memorize game)
  2. flask+echarts+pyecharts+layui+bootstrap+爬虫 flask快速搭建学习
  3. 正交梯度算子(一阶导)
  4. @程序员,你真TM需要培养一个兴趣爱好
  5. 南京邮电大学c语言实验报告4,南京邮电大学算法设计实验报告——动态规划法...
  6. DSY3163*Eden的新背包问题
  7. TOGAF10®标准中文版(全文目录)
  8. 显示控件——图标类之图标变量
  9. excel表格横向纵向变换_excel如何将表格横向变成纵向?
  10. ASO优化之如何提升用户留存率