Numpy中np.bincount的使用方法总结


一、遇到np.bincount

在阅读《Python机器学习基础教程》这本书的时候遇到了这行代码,让我遇到了np.bincount

print("Sample counts per class:{}".format({
    
    n: v for n, v in zip(cancer.target_names, np.bincount(cancer.target))}))
  • 代码解析
cancer.target

在这里插入图片描述

cancer.target.shape

(569,)

np.bincount(cancer.target)

array([212, 357], dtype=int64)

zip(cancer.target_names, np.bincount(cancer.target))

<zip at 0x1b7b4ead288>

list(zip(cancer.target_names, np.bincount(cancer.target)))

[(‘malignant’, 212), (‘benign’, 357)]

想了解更多关于zip函数的:python-zip()函数、lambda、map的单独与结合使用


二、详解np.bincount

  • 统计作用

np.bincount是统计从0到array数组中最大数字出现的个数的函数,并同样以array数组输出显示。

  • 函数使用
  1. np.bincount(np.array([1, 1, 0, 0]))
    在这里插入图片描述

本例中需统计的最大数字是1,因此返回从0到1统计出来每个数字出现的个数

  1. np.bincount(np.array([3]))
    在这里插入图片描述

本例中需统计的最大数字是3,因此返回从0到3统计出来每个数字出现的个数

  1. np.bincount(np.array([0,0,0,0,0]))
    在这里插入图片描述

本例中需统计的最大数字是0,因此返回从0到0统计出来每个数字出现的个数

  1. np.bincount(np.array([1,2,3,4]))
    在这里插入图片描述

本例中需统计的最大数字是4,因此返回从0到4统计出来每个数字出现的个数

  1. np.bincount(np.array([False]))
    在这里插入图片描述

系统指定False为0

  1. np.bincount(np.array([True]))
    在这里插入图片描述

系统指定True为1

  1. np.bincount(np.array([True,False,False]))
    在这里插入图片描述

总结

  1. 为什么《Python机器学习基础教程》中可以使用np.bincount来统计患者患良性和恶行肿瘤的人数呢?
    答:由于cancer.target数组中只有0和1两个数字,最大的数字是1,因此返回的array数组肯定是从0到1每个数字出现的个数。

  2. np.bincount只能计算一维的数组中数字出现的次数
    在这里插入图片描述

  3. 也不能统计字符串出现的次数
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/HG0724/article/details/121270521