page contents

Python教程—Python Numpy聚合运算利器

在数据分析和科学计算的过程中,了解数据的极值(最小值和最大值)以及其位置是非常重要的。Python的Numpy库提供了一组强大的聚合函数,如 min、max 和 argmin/max,用于帮助我们快速获取这些信息。本文将详细探讨这些函数的使用方法,并通过示例代码展示它们在实际中的应用场景。

attachments-2024-08-aTtADACJ66cd294a2ba9e.jpg在数据分析和科学计算的过程中,了解数据的极值(最小值和最大值)以及其位置是非常重要的。Python的Numpy库提供了一组强大的聚合函数,如 min、max 和 argmin/max,用于帮助我们快速获取这些信息。本文将详细探讨这些函数的使用方法,并通过示例代码展示它们在实际中的应用场景。

Numpy中的 min 函数min 函数用于找到数组中的最小值。在Numpy中,np.min() 是一种常用的聚合函数,它可以用于一维数组、多维数组,甚至是指定轴上的最小值查找。使用 np.min() 查找数组中的最小值np.min() 函数可以直接应用于数组,返回整个数组中的最小值。

import numpy as np

# 创建一个一维数组

arr = np.array([10, 20, 5, 30, 25])

# 查找数组中的最小值

min_value = np.min(arr)

print("数组中的最小值:", min_value)

运行以上代码,输出结果为:数组中的最小值:5

在这个示例中,np.min() 函数查找并返回了数组 arr 中的最小值,即5。在多维数组中使用 np.min()对于多维数组,np.min() 函数可以通过指定 axis 参数来查找某个轴上的最小值。import numpy as np

# 创建一个二维数组

arr = np.array([[5, 12, 18], [3, 9, 15], [7, 1, 14]])

# 查找每列的最小值

col_min = np.min(arr, axis=0)

# 查找每行的最小值

row_min = np.min(arr, axis=1)

print("每列的最小值:", col_min)

print("每行的最小值:", row_min)

运行以上代码,输出结果为:每列的最小值: [3 1 14]

每行的最小值: [ 5  3  1]

在这个示例中,通过指定 axis 参数,np.min() 函数分别返回了二维数组 arr 的每列和每行的最小值。Numpy中的 max 函数max 函数用于找到数组中的最大值。在Numpy中,np.max() 是一种常用的聚合函数,适用于一维数组、多维数组,以及指定轴上的最大值查找。使用 np.max() 查找数组中的最大值np.max() 函数可以直接应用于数组,返回整个数组中的最大值。

import numpy as np

# 创建一个一维数组

arr = np.array([10, 20, 5, 30, 25])

# 查找数组中的最大值

max_value = np.max(arr)

print("数组中的最大值:", max_value)

运行以上代码,输出结果为:数组中的最大值:30

在这个示例中,np.max() 函数查找并返回了数组 arr 中的最大值,即30。在多维数组中使用 np.max()对于多维数组,np.max() 函数可以通过指定 axis 参数来查找某个轴上的最大值。

import numpy as np

# 创建一个二维数组

arr = np.array([[5, 12, 18], [3, 9, 15], [7, 1, 14]])

# 查找每列的最大值

col_max = np.max(arr, axis=0)

# 查找每行的最大值

row_max = np.max(arr, axis=1)

print("每列的最大值:", col_max)

print("每行的最大值:", row_max)

运行以上代码,输出结果为:每列的最大值: [ 7 12 18]

每行的最大值: [18 15 14]

在这个示例中,通过指定 axis 参数,np.max() 函数分别返回了二维数组 arr 的每列和每行的最大值。Numpy中的 argmin 与 argmax 函数argmin 和 argmax 函数分别用于查找数组中最小值和最大值的索引位置。这些函数在需要获取极值位置而不是具体数值时非常有用。使用 np.argmin() 查找最小值的索引np.argmin() 函数返回数组中最小值的索引位置。import numpy as np

# 创建一个一维数组

arr = np.array([10, 20, 5, 30, 25])

# 查找最小值的索引位置

min_index = np.argmin(arr)

print("数组中最小值的索引位置:", min_index)

运行以上代码,输出结果为:数组中最小值的索引位置:2

在这个示例中,np.argmin() 函数返回了数组 arr 中最小值(5)的索引位置,即2。使用 np.argmax() 查找最大值的索引np.argmax() 函数返回数组中最大值的索引位置。

import numpy as np

# 创建一个一维数组

arr = np.array([10, 20, 5, 30, 25])

# 查找最大值的索引位置

max_index = np.argmax(arr)

print("数组中最大值的索引位置:", max_index)

运行以上代码,输出结果为:数组中最大值的索引位置:3

在这个示例中,np.argmax() 函数返回了数组 arr 中最大值(30)的索引位置,即3。在多维数组中使用 np.argmin() 与 np.argmax()np.argmin() 和 np.argmax() 同样适用于多维数组,但它们返回的是展平数组中的索引。要获取多维数组中的位置,可以结合 np.unravel_index() 函数使用。

import numpy as np

# 创建一个二维数组

arr = np.array([[5, 12, 18], [3, 9, 15], [7, 1, 14]])

# 查找最小值的索引位置

min_index = np.argmin(arr)

min_position = np.unravel_index(min_index, arr.shape)

# 查找最大值的索引位置

max_index = np.argmax(arr)

max_position = np.unravel_index(max_index, arr.shape)

print("最小值的索引位置:", min_position)

print("最大值的索引位置:", max_position)

运行以上代码,输出结果为:最小值的索引位置: (2, 1)

最大值的索引位置: (0, 2)

在这个示例中,np.argmin() 和 np.argmax() 函数分别返回了二维数组 arr 中最小值和最大值的展平索引位置,然后通过 np.unravel_index() 函数将其转换为对应的多维坐标。Numpy聚合函数的实际应用场景在数据分析、机器学习和科学计算中,查找数据的极值及其位置是非常常见的需求。寻找股票价格的最高和最低点假设有一只股票在一段时间内的每日收盘价,使用Numpy的聚合函数可以轻松找到最高价和最低价及其对应的日期。

import numpy as np

# 股票的每日收盘价

prices = np.array([120, 125, 130, 128, 127, 131, 133, 136, 134, 132])

# 找到最低价和最高价及其日期

min_price = np.min(prices)

max_price = np.max(prices)

min_index = np.argmin(prices)

max_index = np.argmax(prices)

print("最低价:", min_price, "出现在第", min_index + 1, "天")

print("最高价:", max_price, "出现在第", max_index + 1, "天")

运行以上代码,输出结果为:最低价:120 出现在第 1 天

最高价:136 出现在第 8 天

在这个示例中,快速找到了股票在这段时间内的最低价和最高价及其出现的日期。分析学生考试成绩的最高分和最低分在分析一组学生的考试成绩时,了解最高分和最低分及其对应的学生对于教师评估班级整体表现非常有帮助。import numpy as np

# 学生成绩数组

scores = np.array([88, 92, 78, 85, 94, 89, 76, 95, 91, 87])

# 找到最低分和最高分及其对应的学生

min_score = np.min(scores)

max_score = np.max(scores)

min_index = np.argmin(scores)

max_index = np.argmax(scores)

print("最低分:", min_score, "对应的学生编号为:", min_index + 1)

print("最高分:", max_score, "对应的学生编号为:", max_index + 1)

运行以上代码,输出结果为:最低分:76 对应的学生编号为:7

最高分:95 对应的学生编号为:8

在这个示例中,使用 np.min() 和 np.max() 函数分别找出了学生成绩中的最低分和最高分,并结合 np.argmin() 和 np.argmax() 函数得到了这些分数对应的学生编号。这种方法能够快速定位表现最差和最优的学生,为教育决策提供依据。

总结

Numpy中的聚合函数如 min、max 和 argmin/max 是数据分析和科学计算中非常实用的工具。通过这些函数,可以快速找到数据的极值及其所在的位置,帮助深入理解数据的分布和趋势。在实际应用中,这些函数可以广泛用于金融分析、教育评估、机器学习中的特征选择等多种场景。掌握这些Numpy聚合函数,将大大提高数据处理的效率和准确性。希望本文提供的详解和示例代码能帮助大家更好地理解和应用这些重要的函数。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg


  • 发表于 2024-08-27 09:18
  • 阅读 ( 49 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1470 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章