Numpy怎样实现返回指定位置索引
Admin 2022-07-19 群英技术资讯 1096 次浏览
先上代码,主要语句为np.where(b[c]==1),
import numpy as np b = np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]]) # 三行八列的数组b print('b\n',b) c = np.array([2,0]) # c表示指定行 print('b[c]\n',b[c]) # b[c]返回 数组b的指定行 这里依次返回了b的下标为2和0的行 print('\n') print(np.where(b[c]==1)) # 返回指定行的指定元素的位置索引 这里返回了b[c]每行中 值为1的位置索引
观察np.where()的返回值(array([0, 1], dtype=int64), array([4, 7], dtype=int64))可以发现,
对于数组b[c]来说,其中值为1的位置在[0,4]以及[1,7]上,np.where()返回了一个元组,[0]的位置表示行索引,[1]表示列索引。
综上,np.where(b[c]==1)实现的功能是,从b中按c中元素的顺序找到c所指定的行,然后再这些行中发现值为1的位置。
补充:短小精悍算例:Python如何提取数组Numpy array中指定元素的位置索引
import numpy as np a = np.array([1, 2, 3, 2, 2, 3, 0, 8, 3]) print(a)
输出结果:
[1 2 3 2 2 3 0 8 3]
r1 = np.where(a==3) print(type(r1)) print(r1)
输出结果:
<class 'tuple'>
(array([2, 5, 8], dtype=int64),)
可见得到的是一个tuple。
r1 = np.where(a==3) print(type(r1[0])) print(r1[0])
输出结果:
<class 'numpy.ndarray'>
[2 5 8]
r2 = np.argwhere(a==3) print(type(r2)) print(r2) print(r2.shape)
输出结果:
<class 'numpy.ndarray'>
[[2]
[5]
[8]]
(3, 1)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Pyqt5设置返回键和跳转页面键的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
迭代是Python最强大的功能之一,是访问集合元素的一种方式。在 Python 中,使用了 yield 的函数被称为生成器(generator)。
python中字符串是不可变的,所以无法直接删除字符串之间的特定字符,下面这篇文章主要给大家介绍了关于使用Python去除字符串中某个字符的多种实现方式比较的相关资料,需要的朋友可以参考下
这篇文章主要为大家介绍了python列表生成器常用迭代器示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章主要为大家详细介绍了8个实用的Python程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008