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

numpy库 学习

时间:2024-10-13 21:23:36浏览次数:1  
标签:11 10 学习 print 数组 np array numpy

1. 导入 NumPy

import numpy as np

2. 创建数组

2.1 一维数组

a = np.array([1, 2, 3, 4, 5])
print(a)

2.2 多维数组

b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

2.3 特殊数组

  • 全零数组

    zeros = np.zeros((3, 3))
    print(zeros)
    
  • 全一数组

    ones = np.ones((3, 3))
    print(ones)
    
  • 单位矩阵

    identity = np.eye(3)
    print(identity)
    
  • 随机数组

    random_array = np.random.rand(3, 3)
    print(random_array)
    

3. 数组属性

a = np.array([[1, 2, 3], [4, 5, 6]])

print(a.shape)      # (2, 3)
print(a.dtype)      # 数据类型
print(a.size)       # 元素总数
print(a.ndim)       # 维度数

4. 数组索引和切片

4.1 一维数组

a = np.array([1, 2, 3, 4, 5])
print(a[0])         # 1
print(a[1:4])       # [2, 3, 4]

4.2 多维数组

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]]

5. 数组操作

5.1 数学运算

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]

5.2 广播

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 0, 1])

print(a + b)        # [[2, 2, 4], [5, 5, 7]]

6. 数组重塑

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]]]

7. 数组连接和拆分

7.1 连接

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]]

7.2 拆分

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]]

8. 数组排序

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]]

9. 数组统计

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))            # 方差

10. 数组布尔操作

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

11. 数组搜索和选择

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]

12. 文件读写

# 保存数组
np.save('array.npy', a)

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

13. 高级功能

13.1 广播机制

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([1, 0, 1])

print(a + b)                # [[2, 2, 4], [5, 5, 7]]

13.2 线性代数

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]]

14. 常用函数

  • 生成等差数列

    a = np.arange(0, 10, 2)
    print(a)                  # [0, 2, 4, 6, 8]
    
  • 生成等比数列

    a = np.linspace(0, 1, 5)
    print(a)                  # [0.  , 0.25, 0.5 , 0.75, 1.  ]
    
  • 生成对数等比数列

    a = np.logspace(0, 1, 5)
    print(a)                  # [1.        , 1.77827941, 3.16227766, 5.62341325, 10.       ]
    

标签:11,10,学习,print,数组,np,array,numpy
From: https://www.cnblogs.com/jhhhred/p/18463017

相关文章

  • Web前端开发入门学习笔记之CSS 43-47 --新手超级友好版-复合选择器+css特性篇
         Foreword写在前面的话: 大家好,我是一名刚开始学习HTML的新手。这篇文章是我在学习html过程中的一些笔记和心得,希望能和同样在学习HTML的朋友们分享。由于我的知识有限,文章中可能存在错误或不准确的地方,欢迎大家在评论区提出建议和指正。我非常期待大家的反馈,以便......
  • numpy库 学习总结
    NumPy官方文档链接英文官方文档:主页:NumPyDocumentation参考手册:NumPyReference用户指南:NumPyUserGuide中文官方文档:主页:[https://www.numpy.org.cn/reference/]参考手册:NumPy参考手册(中文版)用户指南:NumPy用户指南(中文版)NumPy官方文档总结1.简介Num......
  • 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......
  • 决策树和集成学习
    一、决策树1、概述决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果决策树的建立过程:特征选择:选择有较强分类能力的特征决策树生成:根据选择的特征生成决策树决策树也容易过拟合,需要采用剪枝的方式......