当前位置: 首页 > news >正文

NumPy 模块

​NumPy 模块常用功能与方法总结​

NumPy(Numerical Python)是 Python 的核心科学计算库,提供高性能的多维数组对象(ndarray)和大量数学运算函数。以下是其核心功能及常用方法:


​一、数组创建与基础操作​

​1. 创建数组​

方法说明示例
np.array()从列表/元组创建数组np.array([1, 2, 3])
np.zeros()全零数组np.zeros((3, 3))
np.ones()全一数组np.ones((2, 2))
np.arange()等差序列np.arange(0, 10, 2)
np.linspace()等间隔序列np.linspace(0, 1, 5)
np.random.rand()[0,1) 均匀分布随机数组np.random.rand(2, 3)

​2. 数组属性​

属性说明示例
arr.shape数组维度(3, 3)
arr.dtype数据类型float64
arr.size元素总数9
arr.ndim维度数2

​3. 数组操作​

方法说明示例
arr.reshape()改变形状arr.reshape(3, 3)
arr.flatten()展平为一维数组arr.flatten()
np.concatenate()数组拼接np.concatenate([arr1, arr2])
np.split()分割数组np.split(arr, 3)

​二、数学运算​

​1. 基础运算​

运算说明示例
+, -, *, /逐元素运算arr1 + arr2
np.sqrt()平方根np.sqrt(arr)
np.exp()指数函数np.exp(arr)
np.log()自然对数np.log(arr)

​2. 统计运算​

方法说明示例
np.sum()求和np.sum(arr)
np.mean()平均值np.mean(arr)
np.max()最大值np.max(arr)
np.min()最小值np.min(arr)
np.std()标准差np.std(arr)

​3. 线性代数​

方法说明示例
np.dot()矩阵乘法np.dot(A, B)
np.linalg.inv()矩阵求逆np.linalg.inv(A)
np.linalg.eig()特征值与特征向量np.linalg.eig(A)

​三、随机数生成​

方法说明示例
np.random.rand()[0,1) 均匀分布np.random.rand(3)
np.random.randn()标准正态分布np.random.randn(2, 2)
np.random.randint()随机整数np.random.randint(0, 10)
np.random.normal()自定义正态分布np.random.normal(loc=0, scale=1)
np.random.shuffle()原地打乱数组np.random.shuffle(arr)

​四、索引与切片​

​1. 基础索引​

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1])   # 2(第0行第1列)
print(arr[:, 1])   # [2, 5](所有行的第1列)

​2. 布尔索引​

arr = np.array([1, 2, 3, 4])
print(arr[arr > 2])  # [3, 4]

​3. 花式索引​

arr = np.array([9, 8, 7, 6])
print(arr[[0, 2]])   # [9, 7]

​五、广播机制​

NumPy 允许不同形状的数组进行逐元素运算(自动扩展维度):

arr = np.array([1, 2, 3])
print(arr + 5)  # [6, 7, 8](标量广播)

​六、文件 I/O​

方法说明示例
np.save()保存为 .npy 文件np.save('data.npy', arr)
np.load()加载 .npy 文件np.load('data.npy')
np.savetxt()保存为文本文件np.savetxt('data.txt', arr)

​七、常用技巧​

  1. ​向量化操作​​:避免循环,用数组运算提升性能。

    # 低效(循环)
    result = [x + 1 for x in arr]
    # 高效(向量化)
    result = arr + 1
  2. ​掩码过滤​​:

    arr = np.array([1, 2, 3, 4])
    mask = arr > 2
    print(arr[mask])  # [3, 4]
  3. ​类型转换​​:

    arr = np.array([1.5, 2.3])
    print(arr.astype(int))  # [1, 2]

​总结​

NumPy 的核心功能围绕 ​​多维数组​​ 和 ​​高效运算​​ 展开,适用于:

  • 数值计算(如矩阵运算、统计)
  • 数据预处理(如归一化、过滤)
  • 科学计算(如物理模拟、机器学习)

​学习建议​​:

  1. 掌握 ndarray 的创建和操作。
  2. 熟练使用广播机制和向量化运算。
  3. 结合 SciPy、Pandas 等库构建完整的数据分析流程。

官方文档:numpy.org


文章转载自:

http://qvIB5H7H.zmLbq.cn
http://yWXTY5pL.zmLbq.cn
http://mQ8VfqRu.zmLbq.cn
http://jnQUS1kv.zmLbq.cn
http://vYdeDMXH.zmLbq.cn
http://AYH2GhUv.zmLbq.cn
http://qNjgzj2W.zmLbq.cn
http://pF1YJtPN.zmLbq.cn
http://ogZIuv9a.zmLbq.cn
http://yd2rijm7.zmLbq.cn
http://xjBCFQB4.zmLbq.cn
http://glBe6nHE.zmLbq.cn
http://WMKsnJGh.zmLbq.cn
http://aEkJA3dJ.zmLbq.cn
http://wZA4HMuX.zmLbq.cn
http://kg8OSecd.zmLbq.cn
http://VYUSN6hN.zmLbq.cn
http://icCjnX4S.zmLbq.cn
http://BMnnpFco.zmLbq.cn
http://2xIia3L7.zmLbq.cn
http://0nfo1exd.zmLbq.cn
http://58OJ5ykI.zmLbq.cn
http://eoOMa7WX.zmLbq.cn
http://jTtvNGUC.zmLbq.cn
http://fEZylPl8.zmLbq.cn
http://LgDaCHTX.zmLbq.cn
http://5VhN3pBU.zmLbq.cn
http://g59yGTKX.zmLbq.cn
http://wTW4Bmyg.zmLbq.cn
http://YrhYLOtl.zmLbq.cn
http://www.dtcms.com/a/383821.html

相关文章:

  • Kubernetes基础使用
  • 归并排序递归与非递归实现
  • 第9课:工作流编排与任务调度
  • 淘客app的接口性能测试:基于JMeter的高并发场景模拟与优化
  • C++ 继承:从概念到实战的全方位指南
  • Python中全局Import和局部Import的区别及应用场景对比
  • S16 赛季预告
  • 【硬件-笔试面试题-95】硬件/电子工程师,笔试面试题(知识点:RC电路中的时间常数)
  • synchronized锁升级的过程(从无锁到偏向锁,再到轻量级锁,最后到重量级锁的一个过程)
  • Altium Designer(AD)自定义PCB外观颜色
  • Flink快速上手使用
  • 安卓学习 之 选项菜单(OptionMenu)
  • CKA04--storageclass
  • Dask read_csv未指定数据类型报错
  • 【代码随想录算法训练营——Day11】栈与队列——150.逆波兰表达式求值、239.滑动窗口最大值、347.前K个高频元素
  • TruthfulQA:衡量语言模型真实性的基准
  • 继承与多态
  • Python爬虫实战:研究Pandas,构建新浪网股票数据采集和分析系统
  • 【从零开始】14. 数据评分与筛选
  • 正则表达式与文本三剑客(grep、sed、awk)基础与实践
  • JavaWeb--day5--请求响应分层解耦
  • 去卷积:用魔法打败魔法,让图像清晰
  • Java开发者LLM实战——LangChain4j最新版教学知识库实战
  • 算法 --- 哈希表
  • 【科研绘图系列】R语言绘制全球海洋温度对浮游生物分裂率影响的数据可视化分析
  • 141.环形链表
  • C++ 最短路SPFA
  • 一文读懂 Java 注解运行原理
  • Dify开发中系统变量(system)和用户变量(user)的区别
  • 扩散模型之(五)基于概率流ODE方法