python-numpy中nonzero()的用法
来源:互联网 发布:学页面美工要多少钱 编辑:程序博客网 时间:2024/06/04 19:50
当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。
nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,它表示b1[0]和b1[2]的值不为0(False)。
>>> b1 = np.array([True, False, True, False])>>> np.nonzero(b1) (array([0, 2]),)
对于二维数组b2,nonzero(b2)所得到的是一个长度为2的元组。它的第0个元素是数组a中值不为0的元素的第0轴的下标,第1个元素则是第1轴的下标,因此从下面的结果可知b2[0,0]、b[0,2]和b2[1,0]的值不为0:
>>> b2 = np.array([[True, False, True], [True, False, False]])>>> np.nonzero(b2) (array([0, 0, 1]), array([0, 2, 0]))
当布尔数组直接做为下标时,相当于使用由nonzero()转换之后的元组作为下标对象:
>>> a = np.arange(3*4*5).reshape(3,4,5)>>> a[b2]array([[ 0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24]])>>> a[np.nonzero(b2)]array([[ 0, 1, 2, 3, 4], [10, 11, 12, 13, 14], [20, 21, 22, 23, 24]])
当下标对象是元组,并且其中有布尔数组时,相当于将布尔数组展开为由nonzeros()转换之后的各个整数数组:
>>> a[1:3, b2]array([[20, 22, 25], [40, 42, 45]])>>> a[1:3, np.nonzero(b2)[0], np.nonzero(b2)[1]]array([[20, 22, 25], [40, 42, 45]])
阅读全文
0 0
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python-numpy中nonzero()的用法
- python中numpy.nonzero()用法
- numpy中nonzero()的用法
- numpy nonzero的用法
- numpy中的nonzero()的用法
- numpy中的nonzero()的用法
- TypeError: unhashable type: 'matrix'解决方法 以及 Python3下map函数的显示问题、 python numpy中nonzero()的用法
- python numpy.nonzero
- python nonzero()函数的用法
- Python的Numpy库中的 nonzero函数,及应用在 hardlim硬限幅函数中
- Numpy.nonzero() 详解 numpy module中 nonzero()函数
- 西瓜书《机器学习》课后答案——chapter11
- 使用MultiBootUSB制作容纳多个Linux的启动U盘
- py4j
- Dijkstra 模板
- spring注解开发1
- python-numpy中nonzero()的用法
- LoadRunner11-遇到问题及解决办法
- activeMQ和spring进行整合
- 第十一周java作业--GUI常用组件和容器
- 正则表达式与相关工具
- iOS实现图片边下载边显示
- TP函数库function
- 启动虚拟机时提示我已移动或我已复制选项的详解
- 8位 16位 32位等几种DDR3或LPDDR3的PCB设计总结