python数据分析numpy基础之布尔数组方法sum和any和all

1 python数据分析numpy基础之布尔数组方法sum和any和all

在前面文章介绍的sum、mean、std等统计方法中,布尔值True被转为1,False被转为0。而any和all,则将非0转为True,0转为False。

1.1 sum()

python的numpy库的sum()函数,用于对数组沿指定轴的元素求和。如果是布尔数组,则True为1,False为0.

用法

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>, where=<no value>)

描述

数组的布尔矢量化计算,可以将满足条件的元素转为True,否则为False,再通过np.sum()获取满足条件的元素的个数。

>>> import numpy as np
>>> ar=np.random.randn(15)
>>> ar
array([ 0.82538597, -0.32234141,  0.06807463, -1.14954642,  1.77798786,
       -0.0619438 , -0.26619313, -0.1581929 , -0.28545853, -0.08926111,
       -0.04086482,  1.52881194,  1.17785677, -2.82809615, -0.31513257])
>>> ar>0
array([ True, False,  True, False,  True, False, False, False, False,
       False, False,  True,  True, False, False])
# np.sum(ar>0)中,True转为1,False转为0,求大于0的元素个数
>>> np.sum(ar>0)
5
>>> ar<0
array([False,  True, False,  True, False,  True,  True,  True,  True,
        True,  True, False, False,  True,  True])
# np.sum(ar<0)中,True转为1,False转为0,求小于0的元素个数
>>> np.sum(ar<0)
10

1.2 any()

python的numpy库的any()函数,用于测试数组沿指定轴是否存在True,存在则返回True,否则返回False。any()用于非布尔数组时,非0转为True,0转为False。

用法

numpy.any(a, axis=None, out=None, keepdims=<no value>, *, where=<no value>)

描述

a:必选,为数组或者列表或者元组;

axis:可选,用于指定要测试的数组轴,为整数,范围[0, ndim)。默认为None,转为一维数组后进行测试。

若axis=n为整数,则对沿指定轴n的每个元素的测试是否存在True。

若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推。

>>> import numpy as np
>>> bools=np.array(np.random.randn(24)>0).reshape(2,3,4)
>>> bools
array([[[ True,  True,  True, False],
        [ True, False,  True, False],
        [False,  True, False, False]],

       [[ True, False,  True, False],
        [False, False,  True, False],
        [False, False,  True, False]]])
# axis默认None,转为一维数组后存在True则返回True,否则返回False
>>> np.any(bools)
True
# axis=0,沿0轴存在True则返回True,否则返回False
>>> np.any(bools,axis=0)
array([[ True,  True,  True, False],
       [ True, False,  True, False],
       [False,  True,  True, False]])
# axis=1,沿0轴存在True则返回True,否则返回False
>>> np.any(bools,axis=1)
array([[ True,  True,  True, False],
       [ True, False,  True, False]])
# axis=2,沿0轴存在True则返回True,否则返回False
>>> np.any(bools,axis=2)
array([[ True,  True,  True],
       [ True,  True,  True]])
# 若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推
>>> np.any(bools,axis=-1)
array([[ True,  True,  True],
       [ True,  True,  True]])
       
>>> ar2=np.array([[-1,2,0],[0,-5,0]])
>>> ar2
array([[-1,  2,  0],
       [0, -5,  0]])
# any()用于非布尔数组,非0为True,0为False
>>> np.any(ar2,axis=0)
array([ True,  True, False])

1.3 all()

python的numpy库的all()函数,用于测试数组沿指定轴是否存全部为True,全部为True则返回True,否则返回False。all()用于非布尔数组时,非0转为True,0转为False。

用法

numpy.all(a, axis=None, out=None, keepdims=<no value>, *, where=<no value>)

描述

a:必选,为数组或者列表或者元组;

axis:可选,用于指定要测试的数组轴,为整数,范围[0, ndim)。默认为None,转为一维数组后进行测试。

若axis=n为整数,则对沿指定轴n的每个元素测试,是否全部都为True。

若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推。

>>> import numpy as np
>>> bools=np.array(np.random.randn(24)>0).reshape(2,3,4)
>>> bools
array([[[ True,  True, False, False],
        [ True,  True,  True, False],
        [False, False, False, False]],

       [[ True,  True, False, False],
        [False,  True, False, False],
        [False, False,  True,  True]]])
# axis默认None,转为一维数组后全部为True则返回True,否则返回False
>>> np.all(bools)
False
# axis=0,沿0轴全部为True则返回True,否则返回False
>>> np.all(bools,axis=0)
array([[ True,  True, False, False],
       [False,  True, False, False],
       [False, False, False, False]])
# axis=1,沿1轴全部为True则返回True,否则返回False
>>> np.all(bools,axis=1)
array([[False, False, False, False],
       [False, False, False, False]])
# axis=2,沿2轴全部为True则返回True,否则返回False
>>> np.all(bools,axis=2)
array([[False, False, False],
       [False, False, False]])
# 若axis=负数,则-1对应最后一个轴,-2倒数第2个轴,依此类推
>>> np.all(bools,axis=-1)
array([[False, False, False],
       [False, False, False]])
>>> ar2=np.array([[-1,2,0],[-3,-5,1]])
>>> ar2
array([[-1,  2,  0],
       [-3, -5,  1]])
# all()用于非布尔数组,非0为True,0为False
>>> np.all(ar2,axis=0)
array([ True,  True, False])

相关推荐

  1. Python基础_any()all()

    2024-03-12 02:32:02       21 阅读
  2. python数据分析numpy基础std用法示例

    2024-03-12 02:32:02       30 阅读
  3. python数据分析numpy基础unique对数组元素去重

    2024-03-12 02:32:02       23 阅读
  4. 快速入门PandasNumPy数据分析

    2024-03-12 02:32:02       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-12 02:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-12 02:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-12 02:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-12 02:32:02       20 阅读

热门阅读

  1. Go微服务: 基于GRPC结合Consul实现微服务调用

    2024-03-12 02:32:02       17 阅读
  2. 基于chatgpt的聊天机器人

    2024-03-12 02:32:02       16 阅读
  3. vue - - - - - i18n$t()无法获取数组、对象

    2024-03-12 02:32:02       19 阅读
  4. LeetCode面试题 08.14. Boolean Evaluation LCCI——区间dp

    2024-03-12 02:32:02       19 阅读
  5. Leetcode Algo Day3

    2024-03-12 02:32:02       18 阅读
  6. 2024年度邮件安全报告:恶意邮件增加了105%

    2024-03-12 02:32:02       25 阅读