首页 > 其他分享 >numpy库 学习总结

numpy库 学习总结

时间:2024-10-13 21:21:29浏览次数:6  
标签:总结 NumPy 学习 print 数组 np array numpy

NumPy 官方文档链接

NumPy 官方文档总结

1. 简介

  • NumPy(Numerical Python)是 Python 的一个扩展库,提供了大量的数学函数和高效的数组操作功能。
  • 主要特点
    • 高效的多维数组对象 ndarray
    • 广泛的数学函数和操作。
    • 支持广播机制,简化数组运算。
    • 与 C/C++ 和 Fortran 代码的集成能力。

2. 安装

  • 安装命令
    • 使用 pip 安装:
      pip install numpy
      
    • 使用 conda 安装:
      conda install numpy
      

3. 数组创建

  • 创建一维数组
    import numpy as np
    a = np.array([1, 2, 3, 4, 5])
    
  • 创建多维数组
    b = np.array([[1, 2, 3], [4, 5, 6]])
    
  • 特殊数组
    • 全零数组:
      zeros = np.zeros((3, 3))
      
    • 全一数组:
      ones = np.ones((3, 3))
      
    • 单位矩阵:
      identity = np.eye(3)
      
    • 随机数组:
      random_array = np.random.rand(3, 3)
      

4. 数组属性

  • 形状
    a = np.array([[1, 2, 3], [4, 5, 6]])
    print(a.shape)  # (2, 3)
    
  • 数据类型
    print(a.dtype)  # int64
    
  • 元素总数
    print(a.size)  # 6
    
  • 维度数
    print(a.ndim)  # 2
    

5. 数组索引和切片

  • 一维数组
    a = np.array([1, 2, 3, 4, 5])
    print(a[0])  # 1
    print(a[1:4])  # [2, 3, 4]
    
  • 多维数组
    b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
    print(b[0, 0])  # 1
    print(b[0, :])  # [1, 2, 3]
    print(b[:, 1])  # [2, 5, 8]
    print(b[1:3, 1:3])  # [[5, 6], [8, 9]]
    

6. 数组操作

  • 数学运算
    a = np.array([1, 2, 3])
    b = np.array([4, 5, 6])
    print(a + b)  # [5, 7, 9]
    print(a - b)  # [-3, -3, -3]
    print(a * b)  # [4, 10, 18]
    print(a / b)  # [0.25, 0.4, 0.5]
    print(np.sqrt(a))  # [1., 1.41421356, 1.73205081]
    
  • 广播机制
    a = np.array([[1, 2, 3], [4, 5, 6]])
    b = np.array([1, 0, 1])
    print(a + b)  # [[2, 2, 4], [5, 5, 7]]
    

7. 数组重塑

  • 改变形状
    a = np.arange(12)
    print(a)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
    b = a.reshape((3, 4))
    print(b)  # [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
    c = a.reshape((2, 2, 3))
    print(c)  # [[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]]
    

8. 数组连接和拆分

  • 连接
    a = np.array([[1, 2], [3, 4]])
    b = np.array([[5, 6]])
    c = np.hstack((a, b))
    print(c)  # [[1, 2, 5, 6], [3, 4, 5, 6]]
    d = np.vstack((a, b))
    print(d)  # [[1, 2], [3, 4], [5, 6]]
    
  • 拆分
    a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
    b, c = np.hsplit(a, 2)
    print(b)  # [[1, 2], [5, 6]]
    print(c)  # [[3, 4], [7, 8]]
    d, e = np.vsplit(a, 2)
    print(d)  # [[1, 2, 3, 4]]
    print(e)  # [[5, 6, 7, 8]]
    

9. 数组排序

  • 排序
    a = np.array([3, 1, 2])
    print(np.sort(a))  # [1, 2, 3]
    b = np.array([[3, 1, 2], [6, 4, 5]])
    print(np.sort(b, axis=0))  # [[3, 1, 2], [6, 4, 5]]
    print(np.sort(b, axis=1))  # [[1, 2, 3], [4, 5, 6]]
    

10. 数组统计

  • 统计函数
    a = np.array([[1, 2, 3], [4, 5, 6]])
    print(np.sum(a))  # 21
    print(np.mean(a))  # 3.5
    print(np.median(a))  # 3.5
    print(np.min(a))  # 1
    print(np.max(a))  # 6
    print(np.std(a))  # 标准差
    print(np.var(a))  # 方差
    

11. 数组布尔操作

  • 布尔操作
    a = np.array([1, 2, 3, 4, 5])
    b = np.array([0, 1, 2, 3, 4])
    print(a > 3)  # [False, False, False, True, True]
    print(np.any(a > 3))  # True
    print(np.all(a > 3))  # False
    

12. 数组搜索和选择

  • 搜索非零元素
    a = np.array([1, 2, 3, 4, 5])
    print(np.nonzero(a))  # (array([0, 1, 2, 3, 4]),)
    
  • 条件选择
    b = np.where(a > 3, a, 0)
    print(b)  # [0, 0, 0, 4, 5]
    

13. 文件读写

  • 保存数组
    np.save('array.npy', a)
    
  • 读取数组
    b = np.load('array.npy')
    print(b)  # [1, 2, 3, 4, 5]
    

14. 高级功能

  • 广播机制
    a = np.array([[1, 2, 3], [4, 5, 6]])
    b = np.array([1, 0, 1])
    print(a + b)  # [[2, 2, 4], [5, 5, 7]]
    
  • 线性代数
    a = np.array([[1, 2], [3, 4]])
    b = np.array([[5, 6], [7, 8]])
    print(np.dot(a, b))  # [[19, 22], [43, 50]]
    print(np.linalg.inv(a))  # [[-2. ,  1. ], [ 1.5, -0.5]]
    

总结

NumPy 是一个功能强大的库,提供了丰富的数组操作和数学函数。

标签:总结,NumPy,学习,print,数组,np,array,numpy
From: https://www.cnblogs.com/jhhhred/p/18463024

相关文章

  • Spring学习——SpringAOP
    0.IOC思想(DI)1.关键注解 @Repository publicclassDeptDaoImpl1implementsDeptDao{} @Repository @Primary publicclassDeptDaoImpl2implementsDeptDao{} @Service publicclassDeptServiceImplimplementsDeptService{ @Autowired @Qulif......
  • 2024-2025第一学年 20241410苏尚君《计算机基础与程序设计》第三周学习总结
    这个作业属于哪个课程(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里(2024-2025-1计算机基础与程序设计第三周作业这个作业的目标门电路,组合电路,逻辑电路,冯诺依曼结构作业正文教材学习内容总结一、门定义:“门”通常指的是逻辑门(LogicGates),这是构......
  • 深度学习神经网络笔记--卷积神经网络
    为什么要用卷积捕捉特征,如文末的图)不受位置影响(左右,前后,上下)可以参考下图:卷积操作可移动的小窗口与图像数据逐元素相乘后相加小窗口是滤波器,卷积核,(权重矩阵)需要注意的问题:stride:步长卷积核的个数:决定输出的depth,卷积核个数填充值zerp-padding:外圈补0......
  • 2024-2025 20241313刘鸣宇《计算机基础与程序设计》第三周学习总结
    1.阅读《C语言程序设计》,对有疑问的地方寻找AI进行解答2.3.《计算机科学概论》学习总结(1)第二章学习了不同进制(二进制,十进制,八进制,十六进制)之间的转换学习了其他技术系统中的运算规则(2)第三章1.信息与数据的区别:信息是数据的一种2.为何进行数据压缩:网络具有固定的带宽限制,压......
  • 设计模式学习整理
    学习参考:重构大师创建型模式创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。工厂方法模式在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型;实现方式:使用特殊的工厂方法代替对于对象构造函数的直接调用(即使用new运算符),对象仍将通......
  • 2024-2025-1 20241423 《计算机基础与程序设计》第3周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里2024-2025-1计算机基础与程序设计第三周作业这个作业的目标学习《C语言程序设计》第二章并完成云班课测试。自学《计算机科学概论》第2章,第3章并完成云班课测试......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第3周学习总结
    |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03|这个作业的目标|数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息安全|作业正文|h......
  • 2024Java最新面试题总结(针对于一些小厂、中厂)
    这是根据个人面试经历总结出来的一些经验希望可以帮助到有需要的人。面试的时候,会先让你进行自我介绍,这个大家准备一两分钟的面试稿就可以。然后就是正式面试,面试官一般是两个人以上,开始,面试官会先提问一些基本知识,很基础,基本这个大家是没什么问题的,都可以回答应对。最重要的......
  • 决策树和集成学习
    一、决策树1、概述决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果决策树的建立过程:特征选择:选择有较强分类能力的特征决策树生成:根据选择的特征生成决策树决策树也容易过拟合,需要采用剪枝的方式......
  • 从小白到大神:快速掌握数据挖掘的学习路径!
    0前言数据分析的最关键部分是数据挖掘,啥是数据挖掘?普通人很难感知大海,更别说寻宝但对石油开采人员,大海有坐标。他们对地质勘探,分析地质构造,发现哪些地方可能有石油。然后用开采工具,深度挖掘,直到打到石油。大海、地质信息、石油对开采人员就是数据源、地理位置及分析结果。......