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

可以使用 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 的四个元素。

猜你喜欢

转载自blog.csdn.net/songpeiying/article/details/132488579