python numpy中nonzero()的用法
2016-08-07 02:07
309 查看
转自:python numpy中nonzero()的用法,保存在此以学习。
当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。
nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,它表示b1[0]和b1[2]的值不为0(False)。
对于二维数组b2,nonzero(b2)所得到的是一个长度为2的元组。它的第0个元素是数组a中值不为0的元素的第0轴的下标,第1个元素则是第1轴的下标,因此从下面的结果可知b2[0,0]、b[0,2]和b2[1,0]的值不为0:
当布尔数组直接做为下标时,相当于使用由nonzero()转换之后的元组作为下标对象:
当下标对象是元组,并且其中有布尔数组时,相当于将布尔数组展开为由nonzeros()转换之后的各个整数数组:
分类: Python
当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用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]])
分类: Python
相关文章推荐
- python numpy中nonzero()的用法
- 浅谈python numpy中nonzero()的用法
- python numpy中nonzero()的用法
- python中numpy.nonzero()用法
- python numpy中nonzero()的用法
- python-numpy中nonzero()的用法
- Python-Numpy的tile函数用法
- 【转】Python numpy库的nonzero函数用法
- [Python]numpy中tile函数的用法
- Python中Numpy的tile函数用法以及operator.itemgetter函数和sorted函数
- Python中numpy.clip();numpy.fabs()的用法;以及math.pow()的说明
- python nonzero()函数的用法
- 【Python】Numpy扩充数组函数之repeat和tile用法
- python-numpy的基本用法01
- Python之数组(array)使用方法总结与Numpy中的数组用法
- Python的numpy库中的shape用法
- numpy中的nonzero()的用法
- Python-Numpy的tile函数用法
- 5 python numpy.expand_dims的用法
- Python:一篇文章掌握Numpy的基本用法