Python统计数组中不同数据的数量及占比、最大值、最小值

本文介绍了如何使用Python的collections.Counter类统计数组中不同数据的数量,计算最大值、最小值,以及如何使用内置函数和NumPy模块进行计算。同时,展示了如何使用切片功能处理数组范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以使用 collections 模块中的 Counter 类来统计数组中不同数据的数量。

示例代码:

from collections import Counter

arr = [1, 2, 3, 1, 2, 4, 5, 3, 2, 1]

count = Counter(arr)

for num, freq in count.items():
    print(f"{num}: {freq}")

输出结果:

1: 3
2: 3
3: 2
4: 1
5: 1

其中 count 是一个 Counter 对象,可以使用它的 items() 方法获取每个数据及其出现的次数,然后输出即可。

可以使用内置函数 max()min() 来计算数组中的最大值和最小值。

示例代码:

arr = [1, 2, 3, 4, 5]

max_val = max(arr)
min_val = min(arr)

print(f"最大值:{max_val}")
print(f"最小值:{min_val}")

输出结果:

最大值:5
最小值:1

也可以使用 NumPy 模块中的 np.max()np.min() 函数来实现更多功能。

示例代码:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

max_val = np.max(arr)
min_val = np.min(arr)

print(f"最大值:{max_val}")
print(f"最小值:{min_val}")

输出结果与前面的示例相同。

可以使用 Python 中的 collections 模块中的 Counter 类进行统计数组中不同数据的数量,然后计算每个数据出现的占比。

示例代码:

from collections import Counter

arr = [1, 2, 3, 2, 1, 4, 5, 4]

# 使用 Counter 类统计每个元素的数量
counter = Counter(arr)

# 计算数组中不同数据的数量
diff_num = len(counter)

# 计算每个元素的占比
percentages = {num: count / len(arr) for num, count in counter.items()}

print("数组中不同数据的数量:", diff_num)
print("每个元素的占比:", percentages)

输出结果:

数组中不同数据的数量: 5
每个元素的占比: {1: 0.25, 2: 0.25, 3: 0.125, 4: 0.25, 5: 0.125}

这里采用了字典的方式存储每个元素的占比。键为元素的值,值为该元素出现的频率。

可以使用切片(slice)来指定数组的范围,切片的语法为:

array[start:stop:step]

其中:

  • start:切片的起始下标,包括该下标对应的元素。
  • stop:切片的结束下标,不包括该下标对应的元素。
  • step:切片的步长,表示每隔几个元素取一个。

例如,假设有一个数组 arr

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

要遍历其中下标从 2 到 5 的元素,可以这样写:

for i in arr[2:6]:
    print(i)

输出结果为:

3
4
5
6

注意,切片时,如果省略了 startstop,则默认取数组的起始或结束位置;如果省略了 step,则默认取每隔一个元素。同时,数组的下标是从 0 开始的,因此 arr[2:6] 表示的是下标为 2、3、4、5 的四个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值