【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.1 从零搭建NumPy环境:安装指南与初体验
1. 从零搭建NumPy环境:安装指南与初体验
NumPy核心能力图解(架构图)
NumPy 是 Python 中用于科学计算的核心库,它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面:
- 高效数组操作:NumPy 数组(
ndarray
)比 Python 列表更高效,支持向量化操作。 - 数学函数:提供了丰富的数学函数,如三角函数、指数函数、对数函数等。
- 线性代数:支持矩阵运算、特征值分解、奇异值分解等。
- 随机数生成:提供了多种随机数生成器,用于模拟数据等。
- 广播机制:支持不同形状的数组之间的运算。
- 文件读写:支持多种文件格式的读写操作,如
.npy
、.npz
等。 - 傅里叶变换:支持频域和时域之间的转换。
- 集合操作:支持集合的交集、并集、差集等操作。
下面是 NumPy 的架构图:
Anaconda/Pip双环境安装指南(含版本选择建议)
NumPy 可以通过多种方式安装,其中最常用的两种方式是使用 Anaconda 和 Pip。下面我们将详细介绍这两种方式的安装步骤,并提供版本选择建议。
1.1 使用 Anaconda 安装 NumPy
步骤 1:下载 Anaconda
首先,访问 Anaconda 官方网站并下载最新版本的 Anaconda。Anaconda 为不同的操作系统提供了不同的安装包,确保选择与你当前操作系统相匹配的版本。
- Windows:https://www.anaconda.com/products/distribution#download-section
- Mac:https://www.anaconda.com/products/distribution#download-section
- Linux:https://www.anaconda.com/products/distribution#download-section
步骤 2:安装 Anaconda
按照下载的安装包中的说明进行安装。安装过程中,建议选择默认选项,特别是将 Anaconda 添加到系统路径中。
步骤 3:创建并激活环境
打开 Anaconda Prompt(Windows)或终端(Mac/Linux),创建一个新的环境并激活它。
conda create -n numpy_env python=3.9 # 创建名为 numpy_env 的环境,并指定 Python 版本为 3.9
conda activate numpy_env # 激活环境
步骤 4:安装 NumPy
在激活的环境中,使用以下命令安装 NumPy:
conda install numpy # 安装 NumPy
1.2 使用 Pip 安装 NumPy
步骤 1:安装 Python
确保你的系统已经安装了 Python。你可以从 Python 官方网站下载并安装最新版本的 Python。
- Windows:https://www.python.org/downloads/windows/
- Mac:https://www.python.org/downloads/macos/
- Linux:大多数 Linux 发行版已经预装了 Python,如果没有,可以使用包管理器安装。
步骤 2:安装 Pip
大多数情况下,Python 安装时会自带 Pip。你可以通过以下命令检查 Pip 是否已安装:
python -m pip --version # 检查 Pip 版本
如果没有安装,可以使用以下命令安装:
python -m ensurepip --upgrade # 安装并升级 Pip
步骤 3:创建并激活虚拟环境
推荐使用虚拟环境来管理 Python 项目依赖。你可以使用 venv
模块创建虚拟环境。
python -m venv numpy_env # 创建名为 numpy_env 的虚拟环境
source numpy_env/bin/activate # 激活环境(Linux/Mac)
numpy_env\Scripts\activate # 激活环境(Windows)
步骤 4:安装 NumPy
在激活的虚拟环境中,使用以下命令安装 NumPy:
pip install numpy # 安装 NumPy
三平台安装步骤对比表格
步骤 | Anaconda | Pip |
---|---|---|
1. 下载 | 访问 Anaconda 官方网站下载安装包 | 确保系统已安装 Python |
2. 安装 | 按照安装包说明进行安装 | 从 Python 官方网站下载并安装 |
3. 创建环境 | conda create -n numpy_env python=3.9 | python -m venv numpy_env |
4. 激活环境 | conda activate numpy_env | source numpy_env/bin/activate (Linux/Mac)numpy_env\Scripts\activate (Windows) |
5. 安装 NumPy | conda install numpy | pip install numpy |
验证安装的3种方法
1.3.1 终端命令验证
方法 1:检查 NumPy 版本
python -c "import numpy as np; print(np.__version__)" # 检查 NumPy 版本
方法 2:列出已安装的包
conda list numpy # 列出 Anaconda 环境中已安装的 NumPy 包
pip list | grep numpy # 列出 Pip 环境中已安装的 NumPy 包
1.3.2 Python 代码验证
方法 3:运行简单的 NumPy 代码
import numpy as np# 创建一个 3x3 的数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("创建的 3x3 数组:")
print(array)# 计算数组的平均值
mean_value = np.mean(array)
print("数组的平均值:", mean_value)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建一个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入一个二维列表,其中每个子列表代表数组的一行
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("创建的 3x3 数组:") # 打印数组
print(array)# 计算数组的平均值
# np.mean 是 NumPy 中用于计算平均值的函数
# 传入数组作为参数
mean_value = np.mean(array)
print("数组的平均值:", mean_value) # 打印平均值
常见安装报错解决方案(附错误截图示例)
问题 1:Pip 安装时报错
错误示例:
ERROR: Could not find a version that satisfies the requirement numpy (from versions: none)
ERROR: No matching distribution found for numpy
解决方案:
-
确保你的网络连接正常。
-
升级 Pip 到最新版本:
pip install --upgrade pip
-
如果仍然报错,可以尝试使用国内的镜像源:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
问题 2:Anaconda 安装时报错
错误示例:
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
解决方案:
-
重启 Anaconda Prompt 或终端。
-
清除缓存并重新安装:
conda clean --all conda install numpy
-
如果仍然报错,可以尝试使用国内的镜像源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda install numpy
问题 3:虚拟环境无法激活
错误示例:
source: command not found
解决方案:
- 确保你使用的是正确的激活命令。在 Windows 上使用
numpy_env\Scripts\activate
,在 Linux/Mac 上使用source numpy_env/bin/activate
。 - 检查虚拟环境目录是否存在,并且路径正确。
第一个NumPy程序:数组创建与基础运算
1.4.1 创建数组
NumPy 提供了多种创建数组的方法,包括从列表创建、从文件读取、随机生成等。下面我们将介绍最常见的几种方法。
1. 从列表创建数组
import numpy as np# 从列表创建一维数组
one_d_array = np.array([1, 2, 3, 4, 5])
print("一维数组:")
print(one_d_array)# 从列表创建二维数组
two_d_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("二维数组:")
print(two_d_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 从列表创建一维数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入一个一维列表,创建一个一维数组
one_d_array = np.array([1, 2, 3, 4, 5])
print("一维数组:") # 打印一维数组
print(one_d_array)# 从列表创建二维数组
# 传入一个二维列表,其中每个子列表代表数组的一行
two_d_array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("二维数组:") # 打印二维数组
print(two_d_array)
2. 从文件读取数组
NumPy 支持从多种文件格式读取数组,最常用的是 .npy
和 .npz
文件。
import numpy as np# 从 .npy 文件读取数组
array_from_npy = np.load('array.npy')
print("从 .npy 文件读取的数组:")
print(array_from_npy)# 从 .npz 文件读取数组
data = np.load('data.npz')
array1 = data['array1']
array2 = data['array2']
print("从 .npz 文件读取的数组1:")
print(array1)
print("从 .npz 文件读取的数组2:")
print(array2)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 从 .npy 文件读取数组
# np.load 是 NumPy 中用于从文件加载数组的函数
# 传入文件路径作为参数
array_from_npy = np.load('array.npy')
print("从 .npy 文件读取的数组:") # 打印从 .npy 文件读取的数组
print(array_from_npy)# 从 .npz 文件读取数组
# .npz 文件可以存储多个数组
# 使用 np.load 读取 .npz 文件
data = np.load('data.npz')
# 通过键值访问存储在 .npz 文件中的数组
array1 = data['array1']
array2 = data['array2']
print("从 .npz 文件读取的数组1:") # 打印数组1
print(array1)
print("从 .npz 文件读取的数组2:") # 打印数组2
print(array2)
3. 随机生成数组
import numpy as np# 生成一个 3x3 的随机数组,元素值在 0 到 1 之间
random_array = np.random.rand(3, 3)
print("随机生成的 3x3 数组:")
print(random_array)# 生成一个 3x3 的随机整数数组,元素值在 1 到 10 之间
random_int_array = np.random.randint(1, 10, (3, 3))
print("随机生成的 3x3 整数数组:")
print(random_int_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 生成一个 3x3 的随机数组,元素值在 0 到 1 之间
# np.random.rand 是 NumPy 中用于生成随机数组的函数
# 传入数组的形状作为参数
random_array = np.random.rand(3, 3)
print("随机生成的 3x3 数组:") # 打印随机数组
print(random_array)# 生成一个 3x3 的随机整数数组,元素值在 1 到 10 之间
# np.random.randint 是 NumPy 中用于生成随机整数数组的函数
# 传入最小值、最大值和数组形状作为参数
random_int_array = np.random.randint(1, 10, (3, 3))
print("随机生成的 3x3 整数数组:") # 打印随机整数数组
print(random_int_array)
1.4.2 基础运算
NumPy 提供了丰富的数组运算功能,包括加法、减法、乘法、除法、矩阵乘法等。下面我们将介绍一些常见的基础运算。
1. 数组加法
import numpy as np# 创建两个 3x3 的数组
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的加法
sum_array = array1 + array2
print("数组加法:")
print(sum_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建两个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入二维列表,每个子列表代表数组的一行
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的加法
# NumPy 支持直接使用 + 运算符进行数组加法
sum_array = array1 + array2
print("数组加法:") # 打印结果
print(sum_array)
2. 数组减法
import numpy as np# 创建两个 3x3 的数组
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的减法
diff_array = array1 - array2
print("数组减法:")
print(diff_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建两个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入二维列表,每个子列表代表数组的一行
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的减法
# NumPy 支持直接使用 - 运算符进行数组减法
diff_array = array1 - array2
print("数组减法:") # 打印结果
print(diff_array)
3. 数组乘法
import numpy as np# 创建两个 3x3 的数组
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的逐元素乘法
elementwise_product = array1 * array2
print("逐元素乘法:")
print(elementwise_product)# 计算两个数组的矩阵乘法
matrix_product = np.dot(array1, array2)
print("矩阵乘法:")
print(matrix_product)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建两个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入二维列表,每个子列表代表数组的一行
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的逐元素乘法
# NumPy 支持直接使用 * 运算符进行数组的逐元素乘法
elementwise_product = array1 * array2
print("逐元素乘法:") # 打印结果
print(elementwise_product)# 计算两个数组的矩阵乘法
# np.dot 是 NumPy 中用于计算矩阵乘法的函数
# 传入两个数组作为参数
matrix_product = np.dot(array1, array2)
print("矩阵乘法:") # 打印结果
print(matrix_product)
4. 数组除法
import numpy as np# 创建两个 3x3 的数组
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的逐元素除法
elementwise_division = array1 / array2
print("逐元素除法:")
print(elementwise_division)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建两个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入二维列表,每个子列表代表数组的一行
array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]])# 计算两个数组的逐元素除法
# NumPy 支持直接使用 / 运算符进行数组的逐元素除法
elementwise_division = array1 / array2
print("逐元素除法:") # 打印结果
print(elementwise_division)
5. 数组转置
import numpy as np# 创建一个 3x3 的数组
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 计算数组的转置
transposed_array = array.T
print("数组转置:")
print(transposed_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建一个 3x3 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入二维列表,每个子列表代表数组的一行
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 计算数组的转置
# .T 是 NumPy 数组的一个属性,用于获取数组的转置
transposed_array = array.T
print("数组转置:") # 打印结果
print(transposed_array)
6. 数组重塑
import numpy as np# 创建一个 1x9 的数组
array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])# 将数组重塑为 3x3 的数组
reshaped_array = array.reshape(3, 3)
print("重塑后的数组:")
print(reshaped_array)
注释:
# 导入 NumPy 库,并将其别名为 np
import numpy as np# 创建一个 1x9 的数组
# np.array 是 NumPy 中用于创建数组的函数
# 传入一个一维列表
array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])# 将数组重塑为 3x3 的数组
# .reshape 是 NumPy 数组的一个方法,用于改变数组的形状
# 传入新的形状作为参数
reshaped_array = array.reshape(3, 3)
print("重塑后的数组:") # 打印结果
print(reshaped_array)
参考文献或资料
参考资料名称 | 链接 |
---|---|
NumPy 官方文档 | https://numpy.org/doc/ |
Anaconda 官方文档 | https://docs.anaconda.com/ |
Pip 官方文档 | https://pip.pypa.io/en/stable/ |
Python 官方文档 | https://docs.python.org/3/ |
NumPy 教程 | https://www.datacamp.com/community/tutorials/python-numpy-tutorial |
NumPy 入门指南 | https://numpy.org/devdocs/user/quickstart.html |
NumPy 环境搭建教程 | https://www.geeksforgeeks.org/how-to-install-numpy-on-windows/ |
NumPy 学习笔记 | https://www.jianshu.com/p/4e4d5c1e7e8b |
NumPy 初学者教程 | https://github.com/rougier/numpy-100 |
NumPy 常见问题解答 | https://numpy.org/doc/stable/user/troubleshooting.html |
NumPy 源码分析 | https://github.com/numpy/numpy |
NumPy 速查表 | https://www.kaggle.com/learn/overview |
NumPy 实战案例 | https://www.tensorflow.org/tutorials/quickstart/beginner |
NumPy 书籍推荐 | https://www.springer.com/gp/book/9781484242452 |
NumPy 视频教程 | https://www.youtube.com/watch?v=QUT1VHiLmmI |
NumPy 交互式学习 | https://colab.research.google.com/ |
希望这篇文章能帮助你成功地搭建 NumPy 环境并进行初体验。这篇文章包含了详细的原理介绍、代码示例、源码注释以及案例等。希望这对您有帮助。如果有任何问题请随私信或评论告诉我。
相关文章:

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.1 从零搭建NumPy环境:安装指南与初体验
1. 从零搭建NumPy环境:安装指南与初体验 NumPy核心能力图解(架构图) NumPy 是 Python 中用于科学计算的核心库,它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面:…...

ASP .NET Core 学习(.NET9)部署(一)windows
在windows部署 ASP .NET Core 的时候IIS是不二选择 一、IIS安装 不论是在window7 、w10还是Windows Server,都是十分简单的,下面以Windows10为例 打开控制面版—程序—启用或关闭Windows功能 勾选图中的两项,其中的子项看需求自行勾选&am…...
百日计划(2025年1月22日-4月30日,以完成ue4.0 shader抄写为目标)
目前遇到三个现象: 1,以前都是以跳槽为目标学习技术,但是目前工作难找,所以失去方向,有点迷茫了。 2,对于一项完整的内容,月计划时间不够用,如果工作上一扰乱,就又虎头蛇…...

AIGC视频生成模型:慕尼黑大学、NVIDIA等的Video LDMs模型
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍慕尼黑大学携手 NVIDIA 等共同推出视频生成模型 Video LDMs。NVIDIA 在 AI 领域的卓越成就家喻户晓,而慕尼黑大学同样不容小觑,…...

类与对象(中)
类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下 6 个默认成员函数。默认成员函数:用户没有显式实现,编译器会生…...

如何移植ftp服务器到arm板子?
很多厂家提供的sdk,一般都不自带ftp服务器功能, 需要要发人员自己移植ftp服务器程序。 本文手把手教大家如何移植ftp server到arm板子。 环境 sdk:复旦微 Buildroot 2018.02.31. 解压 $ mkdir ~/vsftpd $ cp vsftpd-3.0.2.tar.gz ~/vs…...

npm常见报错整理
npm install时报UNMET PEER DEPENDENCY 现象 npm install时报UNMET PEER DEPENDENCY,且执行npm install好几遍仍报这个。 原因 不是真的缺少某个包,而是安装的依赖版本不对,警告你应该安装某一个版本。 真的缺少某个包。 解决 看了下package.json文件,我的react是有的…...

苍穹外卖—订单模块
该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查,较基础,因此直接导入代码。 地址表 一个用户可以有多个地址,同时有一个地址为默认地址。用户还可为地址添加例如&q…...
MQ的可靠消息投递机制
确保消息在发送、传递和消费过程中不会丢失、重复消费或错乱。 1. 消息的可靠投递 消息持久化: 消息被发送到队列后会存储在磁盘上,即使消息队列崩溃,消息也不会丢失。例如:Kafka、RabbitMQ等都支持持久化消息。Kafka通过将消息存…...

视频多模态模型——视频版ViT
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》,2021由google 提出用于视频处理的视觉 Transformer 模型,在视频多模态领域有…...

w179基于Java Web的流浪宠物管理系统的设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

MyBatis框架基础学习(1)
目录 一、MyBatis框架介绍。 (1)简化开发。 (2)持久层? (3)框架的解释! 二、JDBC开发缺点。 (1)硬编码。 (2)操作繁琐。 三、MyBatis框…...
arm-linux平台、rk3288 SDL移植
一、所需环境资源 1、arm-linux交叉编译器,这里使用的是gcc-linaro-6.3.1 2、linux交叉编译环境,这里使用的是Ubuntu 20.04 3、sdl2源码 https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.30.11.tar.gz 二、代码编译 1、解压sdl2源码…...

51单片机入门_01_单片机(MCU)概述(使用STC89C52芯片)
文章目录 1. 什么是单片机1.1 微型计算机的组成1.2 微型计算机的应用形态1.3 单板微型计算机1.4 单片机(MCU)1.4.1 单片机内部结构1.4.2 单片机应用系统的组成 1.5 80C51单片机系列1.5.1 STC公司的51单片机1.5.1 STC公司单片机的命名规则 2. 单片机的特点及应用领域2.1 单片机的…...

基础项目——扫雷(c++)
目录 前言一、环境配置二、基础框架三、关闭事件四、资源加载五、初始地图六、常量定义七、地图随机八、点击排雷九、格子类化十、 地图类化十一、 接口优化十二、 文件拆分十三、游戏重开 前言 各位小伙伴们,这期我们一起学习出贪吃蛇以外另一个基础的项目——扫雷…...

docker安装elk6.7.1-搜集java日志
docker安装elk6.7.1-搜集java日志 如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频 0.规划 192.168.171.130 tomcat日志filebeat 192.168.171.131 …...
自然语言处理(NLP)入门:基础概念与应用场景
什么是自然语言处理(NLP)? 自然语言处理(Natural Language Processing, NLP)是人工智能(AI)的一个重要分支,研究如何让计算机理解、生成、分析和与人类语言进行交互。换句话说&…...

AI News(1/21/2025):OpenAI 安全疏忽:ChatGPT漏洞引发DDoS风险/OpenAI 代理工具即将发布
1、OpenAI 的安全疏忽:ChatGPT API 漏洞引发DDoS风险 德国安全研究员 Benjamin Flesch 发现了一个严重的安全漏洞:攻击者可以通过向 ChatGPT API 发送一个 HTTP 请求,利用 ChatGPT 的爬虫对目标网站发起 DDoS 攻击。该漏洞源于 OpenAI 在处理…...

Linux——包源管理工具
一、概要 Linux下的包/源管理命令:主要任务就是完成在Linux环境下的安装/卸载/维护软件。 1.rpm 是最基础的rpm包的安装命令,需要提前下载相关安装包和依赖包。 2.yum/dnf (最好用)是基于rpm包的自动安装命令,可以自动…...
C++解决走迷宫问题:DFS、BFS算法应用
文章目录 思路:DFSBFSBFS和DFS的特点BFS 与 DFS 的区别BFS 的优点BFS 时间复杂度深度优先搜索(DFS)的优点深度优先搜索(DFS)的时间复杂度解释:空间复杂度总结:例如下面的迷宫: // 迷宫的表示:0表示可以走,1表示障碍 vector<vector<int>> maze = {{0, 0,…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...