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

【自学笔记】Numpy基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Numpy基础知识点总览
    • 目录
    • 1. 简介
      • Numpy是什么
      • 为什么使用Numpy
    • 2. 数组对象(ndarray)
      • 创建数组
      • 数组的属性
      • 数组的形状操作
    • 3. 数组的基本操作
      • 数组索引与切片
      • 数组的形状改变
      • 数组的类型转换
    • 4. 数学函数与统计方法
      • 数组元素的数学运算
      • 统计函数
      • 线性代数运算
    • 5. 广播机制
      • 什么是广播
      • 广播的规则与示例
    • 6. 文件操作
      • 读取与保存数组到文件
    • 7. 随机数的生成
      • 生成随机数的方法
  • 总结


Numpy基础知识点总览

目录

  1. 简介

    • Numpy是什么
    • 为什么使用Numpy
  2. 数组对象(ndarray)

    • 创建数组
    • 数组的属性
    • 数组的形状操作
  3. 数组的基本操作

    • 数组索引与切片
    • 数组的形状改变
    • 数组的类型转换
  4. 数学函数与统计方法

    • 数组元素的数学运算
    • 统计函数
    • 线性代数运算
  5. 广播机制

    • 什么是广播
    • 广播的规则与示例
  6. 文件操作

    • 读取与保存数组到文件
  7. 随机数的生成

    • 生成随机数的方法

1. 简介

Numpy是什么

Numpy(Numerical Python)是Python的一个开源数值计算扩展库,用于存储和处理大型矩阵。它提供了大量的数学函数和操作这些矩阵的方法。

为什么使用Numpy

  • Numpy数组在存储和计算大型数据时比Python原生列表更高效。
  • Numpy提供了大量的数学函数和线性代数运算,简化了科学计算。

2. 数组对象(ndarray)

创建数组

import numpy as np

# 一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)

# 使用特殊函数创建数组
zeros = np.zeros((2, 3))  # 创建一个2x3的零数组
ones = np.ones((2, 3))    # 创建一个2x3的全1数组
print(zeros)
print(ones)

数组的属性

print(arr2.shape)       # 输出数组的形状
print(arr2.dtype)       # 输出数组的数据类型
print(arr2.size)        # 输出数组的元素个数
print(arr2.ndim)        # 输出数组的维度

数组的形状操作

# 改变数组的形状
arr2_reshaped = arr2.reshape((3, 2))
print(arr2_reshaped)

# 数组转置
arr2_transposed = arr2.T
print(arr2_transposed)

3. 数组的基本操作

数组索引与切片

# 一维数组索引与切片
print(arr1[0])          # 输出第一个元素
print(arr1[1:4])        # 输出第二个到第四个元素

# 二维数组索引与切片
print(arr2[0, 1])       # 输出第一行第二列的元素
print(arr2[0, :])       # 输出第一行的所有元素
print(arr2[:, 1])       # 输出所有行的第二列元素

数组的形状改变

# 使用ravel()将二维数组展平为一维数组
arr2_flattened = arr2.ravel()
print(arr2_flattened)

# 使用resize()改变数组的形状
arr2.resize((3, 1))
print(arr2)

数组的类型转换

# 将数组转换为浮点型
arr2_float = arr2.astype(np.float64)
print(arr2_float)

4. 数学函数与统计方法

数组元素的数学运算

# 元素级运算
arr3 = np.array([1, 2, 3])
arr4 = np.array([4, 5, 6])
print(arr3 + arr4)  # 对应元素相加
print(arr3 * arr4)  # 对应元素相乘

统计函数

# 计算数组的基本统计量
print(np.mean(arr1))       # 平均值
print(np.median(arr1))     # 中位数
print(np.std(arr1))        # 标准差
print(np.var(arr1))        # 方差
print(np.max(arr1))        # 最大值
print(np.min(arr1))        # 最小值

线性代数运算

# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])

# 矩阵乘法
print(np.dot(A, B))

# 矩阵的逆
print(np.linalg.inv(A))

5. 广播机制

什么是广播

广播是numpy中用于在不同形状的数组之间执行算术运算的一种机制。

广播的规则与示例

# 示例1:一维数组与标量运算
arr5 = np.array([1, 2, 3])
print(arr5 + 10)  # 每个元素都加上10

# 示例2:形状兼容的数组运算
arr6 = np.array([[1, 2], [3, 4]])
arr7 = np.array([5, 6])
print(arr6 + arr7)  # arr7会被广播到与arr6相同的形状

6. 文件操作

读取与保存数组到文件

# 保存数组到文本文件
np.savetxt('array.txt', arr2, delimiter=',')

# 从文本文件读取数组
loaded_array = np.loadtxt('array.txt', delimiter=',')
print(loaded_array)

7. 随机数的生成

生成随机数的方法

# 生成一个0到1之间的随机浮点数
print(np.random.rand())

# 生成一个指定形状的数组,数组元素为0到1之间的随机浮点数
print(np.random.rand(2, 3))

# 生成一个指定范围内的随机整数
print(np.random.randint(low=0, high=10, size=(2, 3)))

# 生成一个服从正态分布的随机数数组
print(np.random.randn(2, 3))

希望这份Numpy基础知识点总览和代码示例能帮助你更好地学习和分享Numpy的相关知识。如果有任何疑问或需要进一步的解释,请随时提问。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Numpy基础知识点总览。

相关文章:

  • linux上安装redis[从0到1]
  • 【AGI】通往AGI的复兴号:模型工具演进与技术路径优化
  • 03特征值分解
  • 软件测试の概念之测试分类质量模型测试用例
  • 渗透测试之利用sql拿shell(附完整流程+防御方案)【上】
  • Visual studio + Qt 项目配置管理
  • UI自动化测试Selenium安装教程(1)
  • 《加快应急机器人发展的指导意见》中智能化升级的思考——传统应急设备智能化升级路径与落地实践
  • 【JavaEE】网络原理
  • FPGA学习篇——Verilog学习5(reg,wire区分及模块例化)
  • 【洛谷P1080国王游戏】2025-3-7
  • K8S学习之基础十三:k8s中ReplicaSet的用法
  • VUE3开发-4、组件引入
  • 《A++ 敏捷开发》- 18 软件需求
  • java 重点知识 — JVM存储模块与类加载器
  • js基本功(五)
  • 【Linux网络#13】:网络层(IP 协议 网络通信 全球网络 路由转发)
  • STM32F4 UDP组播通信:填一填ST官方HAL库的坑
  • 【JAVA架构师成长之路】【电商系统实战】第12集:秒杀系统性能优化实战(CAN + Nginx + Sentinel)
  • Myslq表的内外连接
  • 成都网站建设推广/重庆网站建设公司
  • 昆明网站建设优化图片/网络营销八大职能
  • wordpress 云储存/网站首页排名seo搜索优化
  • 怎么做公司网站的手机客户端/一个完整的产品运营方案
  • wordpress网站慢/按效果付费的网络推广方式
  • 网站开发与设计期末考试/公司员工培训方案