今天我要和大家聊一个超级实用的Python库 - NumPy。作为数据处理和科学计算的基石,NumPy可以帮我们轻松处理大量数据。不知道大家有没有被Python处理数组时的慢速度困扰过?别担心,NumPy就是来解决这个问题的!
初识NumPy
我们需要安装并导入NumPy:
1# 安装NumPy
2# pip install numpy
3
4import numpy as np # 约定俗成的导入方式
创建NumPy数组
NumPy的核心是它的多维数组对象(ndarray)。来看看如何创建数组:
1# 从列表创建数组
2arr1 = np.array([1, 2, 3, 4, 5])
3print(arr1) # [1 2 3 4 5]
4
5# 创建特殊数组
6zeros = np.zeros(5) # 创建5个元素都是0的数组
7ones = np.ones((2, 3)) # 创建2行3列的全1数组
8random_arr = np.random.rand(3, 3) # 创建3x3的随机数数组
小贴士:np.zeros和np.ones都是创建数组的快捷方式,比手动输入要方便得多!
数组运算
NumPy的强大之处在于它的矢量化运算,看看这些神奇的操作:
1# 数组基础运算
2arr = np.array([1, 2, 3, 4])
3print(arr * 2) # [2 4 6 8]
4print(arr + 10) # [11 12 13 14]
5
6# 数组之间的运算
7arr2 = np.array([5, 6, 7, 8])
8print(arr + arr2) # [6 8 10 12]
9print(arr * arr2) # [5 12 21 32]
注意事项:这些运算都是元素级的,比普通Python循环快很多倍!
数组切片和索引
NumPy的索引操作和Python列表类似,但更加强大:
1arr = np.array([[1, 2, 3],
2 [4, 5, 6],
3 [7, 8, 9]])
4
5print(arr[0]) # 第一行 [1 2 3]
6print(arr[:, 1]) # 第二列 [2 5 8]
7print(arr[1:, 1:]) # 子数组 [[5 6]
8 # [8 9]]
数组变形和组合
来看看如何改变数组的形状:
1arr = np.array([1, 2, 3, 4, 5, 6])
2reshaped = arr.reshape(2, 3) # 变成2行3列
3print(reshaped)
4
5# 数组拼接
6arr1 = np.array([1, 2, 3])
7arr2 = np.array([4, 5, 6])
8combined = np.concatenate([arr1, arr2])
9print(combined) # [1 2 3 4 5 6]
实用函数
NumPy提供了大量实用的数学函数:
1arr = np.array([1, 2, 3, 4, 5])
2print(np.sum(arr)) # 求和:15
3print(np.mean(arr)) # 平均值:3.0
4print(np.max(arr)) # 最大值:5
5print(np.min(arr)) # 最小值:1
小练习:
创建一个5x5的随机数数组,计算每行的平均值
将一个一维数组重塑成3x4的数组(提示:需要确保元素个数正确)
小贴士:使用NumPy时要注意数据类型,它比Python的列表更严格,混合类型可能会自动转换!
总结
今天我们学习了NumPy的基础知识:
创建数组的各种方法
数组的基本运算
切片和索引操作
数组形状的改变和组合
常用的数学函数
小伙伴们,今天的Python学习之旅就到这里啦!记得动手敲代码,有问题随时在评论区问我哦。祝大家学习愉快,Python学习节节高!
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!