程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!
1.Numpy
Numpy是一个Python科学计算库,提供了高性能的多维数组对象以及对这些数组进行操作的函数。是许多其他数据科学和机器学习库的基础,总而言之,就是可以提高数据计算的库。
在Python的世界里,Numpy就像空气一样无处不在。不仅是数据科学的基石,更是机器学习、图像处理等领域的必备工具。相比Python原生的列表(List),Numpy的数组(Array)有三大杀手锏:
速度快:运算速度提升10-100倍
内存省:存储相同数据可节省75%内存
功能强:支持矩阵运算、广播机制等高级功能
2.安装和初体验
使用pip安装
pip install numpy
验证是否可用,再python文件中,实现如下代码:
# 导入numpy框架
import numpy as np
print(np.__version__) # 输出版本号
3.numpy核心作用
3.numpy使用
3.1 数组创建
数组的五种创建方式
# 导入numpy框架
import numpy as np
# 从列表创建
arr1 = np.array([1, 2, 3]) # 一维数组
arr2 = np.array([[1, 2], [3, 4]]) # 二维数组
# 特殊数组生成
zeros = np.zeros((3,3)) # 3x3全零矩阵
print("3x3全零矩阵:")
print(zeros)
ones = np.ones((2,4)) # 2x4全一矩阵
print("2x4全一矩阵:")
print(ones)
eye = np.eye(3) # 3x3单位矩阵
print("3x3单位矩阵:")
print(eye)
# 数值范围生成
range_arr = np.arange(0, 10, 2) # [0 2 4 6 8]
print("数值范围:整数")
print(range_arr)
lin_arr = np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1. ]
print("数值范围:小数")
print(lin_arr)
# 随机数组
rand_arr = np.random.rand(2,3) # 2x3的随机矩阵(0-1均匀分布)
print("随机数组:")
print(rand_arr)
normal_arr = np.random.normal(0, 1, (3,3)) # 正态分布矩阵
print("正态分布矩阵:")
print(normal_arr)
3.2 数组变形
# 导入numpy框架
import numpy as np
arr = np.arange(12)
print(arr.reshape(3,4)) # 改为3行4列
print(arr.reshape(2,3,2)) # 三维数组
print(arr.flatten()) # 展平为一维
print(arr.T) # 转置(二维时有效)
3.3 数组的索引
# 导入numpy框架
import numpy as np
arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print(arr[0, 1]) # 输出2(第0行第1列)
print(arr[1:3, :2])# 获取第1-2行的前两列
# 布尔索引
mask = arr > 5
print(arr[mask]) # 输出所有大于5的元素
# 花式索引
print(arr[[0,2], [1,1]]) # 取(0,1)和(2,1)位置的值
3.4 数组运算:向量化操作
Numpy的核心魔法:无需循环即可操作整个数组
# 导入numpy框架
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a + b) # [5 7 9]
print(a * 2) # [2 4 6]
print(np.sin(a)) # 计算每个元素的正弦值
3.5 广播机制
当数组形状不同时,Numpy会自动扩展较小数组
# 导入numpy框架
import numpy as np
A = np.array([[1,2], [3,4]])
B = np.array([10, 20])
print(A + B) # [[11 22], [13 24]]
3.6 统计函数
# 导入numpy框架
import numpy as np
arr = np.random.randn(100) # 100个正态分布随机数
print("平均值:s%"+np.mean(arr)) # 平均值
print("标准差:"+np.std(arr)) # 标准差
print("90分位数:"+np.percentile(arr, 90)) # 90分位数
3.7 线性代数
# 导入numpy框架
import numpy as np
A = np.array([[1,2], [3,4]])
B = np.array([[5,6], [7,8]])
print("矩阵乘法:",A.dot(B)) # 矩阵乘法
print("行列式:",np.linalg.det(A)) # 行列式
print("逆矩阵:",np.linalg.inv(A)) # 逆矩阵
学习Numpy就像学骑自行车,刚开始可能会摇摇晃晃,但一旦掌握核心技巧,你就能在数据科学的赛道上飞驰!现在打开你的Python编辑器,动手实践这些代码吧!
好啦,就到这里啦,加油,努力!