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

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.1 从零搭建NumPy环境:安装指南与初体验

在这里插入图片描述

1. 从零搭建NumPy环境:安装指南与初体验

NumPy核心能力图解(架构图)

NumPy 是 Python 中用于科学计算的核心库,它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面:

  • 高效数组操作:NumPy 数组(ndarray)比 Python 列表更高效,支持向量化操作。
  • 数学函数:提供了丰富的数学函数,如三角函数、指数函数、对数函数等。
  • 线性代数:支持矩阵运算、特征值分解、奇异值分解等。
  • 随机数生成:提供了多种随机数生成器,用于模拟数据等。
  • 广播机制:支持不同形状的数组之间的运算。
  • 文件读写:支持多种文件格式的读写操作,如 .npy.npz 等。
  • 傅里叶变换:支持频域和时域之间的转换。
  • 集合操作:支持集合的交集、并集、差集等操作。

下面是 NumPy 的架构图:

NumPy
高效数组操作
数学函数
线性代数
随机数生成
广播机制
文件读写
傅里叶变换
集合操作
ndarray
向量化操作
三角函数
指数函数
对数函数
矩阵运算
特征值分解
奇异值分解
均匀分布
正态分布
泊松分布
不同形状数组运算
.npy 文件
.npz 文件
频域转换
时域转换
交集
并集
差集
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
三平台安装步骤对比表格
步骤AnacondaPip
1. 下载访问 Anaconda 官方网站下载安装包确保系统已安装 Python
2. 安装按照安装包说明进行安装从 Python 官方网站下载并安装
3. 创建环境conda create -n numpy_env python=3.9python -m venv numpy_env
4. 激活环境conda activate numpy_envsource numpy_env/bin/activate(Linux/Mac)
numpy_env\Scripts\activate(Windows)
5. 安装 NumPyconda install numpypip 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

解决方案:

  1. 确保你的网络连接正常。

  2. 升级 Pip 到最新版本:

    pip install --upgrade pip
    
  3. 如果仍然报错,可以尝试使用国内的镜像源:

    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.

解决方案:

  1. 重启 Anaconda Prompt 或终端。

  2. 清除缓存并重新安装:

    conda clean --all
    conda install numpy
    
  3. 如果仍然报错,可以尝试使用国内的镜像源:

    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

解决方案:

  1. 确保你使用的是正确的激活命令。在 Windows 上使用 numpy_env\Scripts\activate,在 Linux/Mac 上使用 source numpy_env/bin/activate
  2. 检查虚拟环境目录是否存在,并且路径正确。
第一个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 的核心能力可以概括为以下几个方面&#xff1a…...

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,…...

机器学习09-Pytorch功能拆解

机器学习09-Pytorch功能拆解 我个人是Java程序员&#xff0c;关于Python代码的使用过程中的相关代码事项&#xff0c;在此进行记录 文章目录 机器学习09-Pytorch功能拆解1-核心逻辑脉络2-个人备注3-Pytorch软件包拆解1-Python有参和无参构造构造方法的基本语法示例解释注意事项…...

BLE透传方案,IoT短距无线通信的“中坚力量”

在物联网&#xff08;IoT&#xff09;短距无线通信生态系统中&#xff0c;低功耗蓝牙&#xff08;BLE&#xff09;数据透传是一种无需任何网络或基础设施即可完成双向通信的技术。其主要通过简单操作串口的方式进行无线数据传输&#xff0c;最高能满足2Mbps的数据传输速率&…...

Linux 中的poll、select和epoll有什么区别?

poll 和 select 是Linux 系统中用于多路复用 I/O 的系统调用&#xff0c;它们允许一个程序同时监视多个文件描述符&#xff0c;以便在任何一个文件描述符准备好进行 I/O 操作时得到通知。 一、select select 是一种较早的 I/O 多路复用机制&#xff0c;具有以下特点&#xff…...

单片机-STM32 WIFI模块--ESP8266 (十二)

1.WIFI模块--ESP8266 名字由来&#xff1a; Wi-Fi这个术语被人们普遍误以为是指无线保真&#xff08;Wireless Fidelity&#xff09;&#xff0c;并且即便是Wi-Fi联盟本身也经常在新闻稿和文件中使用“Wireless Fidelity”这个词&#xff0c;Wi-Fi还出现在ITAA的一个论文中。…...

linux日志排查相关命令

实时查看日志 tail -f -n 100 文件名 -f:实时查看 -n:查看多少行 直接查看日志文件 .log文件 cat 文件名 .gz文件 zgcat 文件名 在日志文件搜索指定内容 .log文件 grep -A 3 “呀1” 文件名 -A&#xff1a;向后查看 3&#xff1a;向后查看行数 “呀1”&#xff1a;搜…...

每日一题-二叉搜索树与双向链表

将二叉搜索树转化为排序双向链表 问题描述 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表&#xff0c;要求空间复杂度为 O(1)&#xff0c;时间复杂度为 O(n)&#xff0c;并且不能创建新的结点&#xff0c;只能调整树中结点的指针指向。 数据范围 …...

【多视图学习】Self-Weighted Contrastive Fusion for Deep Multi-View Clustering

Self-Weighted Contrastive Fusion for Deep Multi-View Clustering 用于深度多视图聚类的自加权对比融合 TMM 2024 代码链接 论文链接 0.摘要 多视图聚类可以从多个视图中探索共识信息&#xff0c;在过去二十年中越来越受到关注。然而&#xff0c;现有的工作面临两个主要挑…...

ASK-HAR:多尺度特征提取的深度学习模型

一、探索多尺度特征提取方法 在近年来&#xff0c;随着智能家居智能系统和传感技术的快速发展&#xff0c;人类活动识别&#xff08;HAR&#xff09;技术已经成为一个备受瞩目的研究领域。HAR技术的核心在于通过各种跟踪设备和测量手段&#xff0c;如传感器和摄像头&#xff0…...

C语言:数据的存储

本文重点&#xff1a; 1. 数据类型详细介绍 2. 整形在内存中的存储&#xff1a;原码、反码、补码 3. 大小端字节序介绍及判断 4. 浮点型在内存中的存储解析 数据类型结构的介绍&#xff1a; 类型的基本归类&#xff1a; 整型家族 浮点家族 构造类型&#xff1a; 指针类型&…...

深入理解动态规划(dp)--(提前要对dfs有了解)

前言&#xff1a;对于动态规划&#xff1a;该算法思维是在dfs基础上演化发展来的&#xff0c;所以我不想讲的是看到一个题怎样直接用动态规划来解决&#xff0c;而是说先用dfs搜索&#xff0c;一步步优化&#xff0c;这个过程叫做动态规划。&#xff08;该文章教你怎样一步步的…...