python中的计数函数_NumPy的搜索和计数函数

在 NumPy 中有一些用于在数组内搜索的函数,通过这些搜索函数可以很方便地在数组中查找到满足某些条件的元素,然后根据数据分析的需要进行相关的操作。常用的数组内搜索函数有 argmin()、nanargmin()、argmax()、nanargmax()、nonzero()、where() 和 extract() 等。

argmin()、nanargmin()、argmax()函数、nanargmax()

argmin() 和 argmax() 函数用于沿指定轴返回最小和最大元素的索引。nanargmin()、nanargmax() 函数用于沿指定轴返回忽略了 NaN 的最小值和最大值的索引。其中,argmin() 函数的格式如下:

numpy.argmin(a[,axis=None])

argmin() 函数有 2 个参数。其中,参数 a 为输入数组;参数 axis 指定沿着哪个轴进行查找操作,参数 axis 为可选项。

nanargmin()、argmax() 和 nanargmax() 函数格式与 argmin() 函数格式相同。

argmin()、nanargmin()、argmax() 函数的示例代码 example1 如下。

# -*- coding: UTF-8 -*-

import numpy as np

arr = np.array([[3,15,2],[30,7,10]])

print ('原数组是:',arr)

#调用argmax() 函数

maxindex= np.argmax(arr)

print('最大值索引',maxindex)

maxindex0 = np.argmax(arr, axis = 0)

print ('沿轴 0 的最大值索引:',maxindex0)

maxindex1 = np.argmax(arr, axis = 1)

print ('沿轴 1 的最大值索引:',maxindex1)

#调用argmin() 函数

minindex = np.argmin(arr)

print ('最小值索引',minindex)

print ('展开数组中的最小值',arr.flatten()[minindex])

minindex0 = np.argmin(arr, axis = 0)

print ('沿轴 0 的最小值索引:',minindex0)

minindex1 = np.argmin(arr, axis = 1)

print ('沿轴 1 的最小值索引:',minindex1)

#调用nanargmin() 函数

arr = np.array([[3,15,2],[30,7,10]], dtype=float)

arr[0,1] = np.nan #设置数组有nan值

print(arr)

minindex = np.nanargmin(arr)

print ('最小值索引',minindex)

print ('展开数组中的最小值',arr.flatten()[minindex]) #输出2.0

nonzero() 函数

nonzero() 函数用于返回输入数组中非零元素的索引。函数的格式如下:

numpy.nonzero(a)

nonzero() 函数中参数 a 为输入数组。

其示例代码如下。

# -*- coding: UTF-8 -*-

import numpy as np

#调用 nonzero() 函数

arr = np.array([[3,0,2],[0,7,1]])

#输出(array([0, 0, 1, 1], dtype=int64), array([0, 2, 1, 2], dtype=int64))

print(np.nonzero(arr))

where() 函数

where() 函数用于返回输入数组中满足给定条件 x 的元素的索引,或者是当给定的条件 x 为 True 时,返回 y 数据,否则返回 z 数据。函数的格式如下:

numpy.where(x[,y,z])

其中,x 为条件表达式;y 为 x 为 True 时的取值;z 为 x 为 False 时的取值。

其示例代码如下。

# -*- coding: UTF-8 -*-

import numpy as np

arr = np.arange(8).reshape(2,4)

x = np.where(arr> 4)

print ('大于 4 的元素的索引:',x)

print ('用索引来获取满足条件的元素',arr[x]))

extract() 函数

extract() 函数用于返回满足任何条件的元素。函数的格式如下:

numpy.extract(x,a)

其中,x 为条件表达式;a 为输入数组。

其示例代码如下。

# -*- coding: UTF-8 -*-

import numpy as np

arr = np.arange(8).reshape(2,4)

# 定义条件

condition = np.mod(arr,2)== 0

print ('按元素的条件值:',condition)

print ('使用条件提取元素:')

print (np.extract(condition,arr))

count_nonzero() 函数

count_nonzero() 函数可以统计 NumPy 数组中非 0 元素的个数。该函数的格式如下:

numpy.count_nonzero (a)

其中,a 为输入数组。

其示例代码如下。

# -*- coding: UTF-8 -*-

import numpy as np

arr= np.arange(8).reshape(2,4)

a = np.count_nonzero(arr)

print(a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值