手机网站用什么软件,信得过的网站开发推广,做海报有什么好的网站推荐,怎么查网站服务器1. 从零搭建NumPy环境#xff1a;安装指南与初体验
NumPy核心能力图解#xff08;架构图#xff09;
NumPy 是 Python 中用于科学计算的核心库#xff0c;它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面#xff1a…
1. 从零搭建NumPy环境安装指南与初体验
NumPy核心能力图解架构图
NumPy 是 Python 中用于科学计算的核心库它提供了高效的多维数组对象以及用于处理这些数组的各种操作。NumPy 的核心能力可以概括为以下几个方面
高效数组操作NumPy 数组ndarray比 Python 列表更高效支持向量化操作。数学函数提供了丰富的数学函数如三角函数、指数函数、对数函数等。线性代数支持矩阵运算、特征值分解、奇异值分解等。随机数生成提供了多种随机数生成器用于模拟数据等。广播机制支持不同形状的数组之间的运算。文件读写支持多种文件格式的读写操作如 .npy、.npz 等。傅里叶变换支持频域和时域之间的转换。集合操作支持集合的交集、并集、差集等操作。
下面是 NumPy 的架构图 #mermaid-svg-wt2J8oF2oJkfDLDq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .error-icon{fill:#552222;}#mermaid-svg-wt2J8oF2oJkfDLDq .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wt2J8oF2oJkfDLDq .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-wt2J8oF2oJkfDLDq .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wt2J8oF2oJkfDLDq .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wt2J8oF2oJkfDLDq .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wt2J8oF2oJkfDLDq .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wt2J8oF2oJkfDLDq .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wt2J8oF2oJkfDLDq .marker.cross{stroke:#333333;}#mermaid-svg-wt2J8oF2oJkfDLDq svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wt2J8oF2oJkfDLDq .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .cluster-label text{fill:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .cluster-label span{color:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .label text,#mermaid-svg-wt2J8oF2oJkfDLDq span{fill:#333;color:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .node rect,#mermaid-svg-wt2J8oF2oJkfDLDq .node circle,#mermaid-svg-wt2J8oF2oJkfDLDq .node ellipse,#mermaid-svg-wt2J8oF2oJkfDLDq .node polygon,#mermaid-svg-wt2J8oF2oJkfDLDq .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wt2J8oF2oJkfDLDq .node .label{text-align:center;}#mermaid-svg-wt2J8oF2oJkfDLDq .node.clickable{cursor:pointer;}#mermaid-svg-wt2J8oF2oJkfDLDq .arrowheadPath{fill:#333333;}#mermaid-svg-wt2J8oF2oJkfDLDq .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wt2J8oF2oJkfDLDq .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wt2J8oF2oJkfDLDq .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-wt2J8oF2oJkfDLDq .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-wt2J8oF2oJkfDLDq .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wt2J8oF2oJkfDLDq .cluster text{fill:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq .cluster span{color:#333;}#mermaid-svg-wt2J8oF2oJkfDLDq div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wt2J8oF2oJkfDLDq :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} NumPy 高效数组操作 数学函数 线性代数 随机数生成 广播机制 文件读写 傅里叶变换 集合操作 ndarray 向量化操作 三角函数 指数函数 对数函数 矩阵运算 特征值分解 奇异值分解 均匀分布 正态分布 泊松分布 不同形状数组运算 .npy 文件 .npz 文件 频域转换 时域转换 交集 并集 差集 Anaconda/Pip双环境安装指南含版本选择建议
NumPy 可以通过多种方式安装其中最常用的两种方式是使用 Anaconda 和 Pip。下面我们将详细介绍这两种方式的安装步骤并提供版本选择建议。
1.1 使用 Anaconda 安装 NumPy
步骤 1下载 Anaconda
首先访问 Anaconda 官方网站并下载最新版本的 Anaconda。Anaconda 为不同的操作系统提供了不同的安装包确保选择与你当前操作系统相匹配的版本。
Windowshttps://www.anaconda.com/products/distribution#download-sectionMachttps://www.anaconda.com/products/distribution#download-sectionLinuxhttps://www.anaconda.com/products/distribution#download-section
步骤 2安装 Anaconda
按照下载的安装包中的说明进行安装。安装过程中建议选择默认选项特别是将 Anaconda 添加到系统路径中。
步骤 3创建并激活环境
打开 Anaconda PromptWindows或终端Mac/Linux创建一个新的环境并激活它。
conda create -n numpy_env python3.9 # 创建名为 numpy_env 的环境并指定 Python 版本为 3.9
conda activate numpy_env # 激活环境步骤 4安装 NumPy
在激活的环境中使用以下命令安装 NumPy
conda install numpy # 安装 NumPy1.2 使用 Pip 安装 NumPy
步骤 1安装 Python
确保你的系统已经安装了 Python。你可以从 Python 官方网站下载并安装最新版本的 Python。
Windowshttps://www.python.org/downloads/windows/Machttps://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三平台安装步骤对比表格
步骤AnacondaPip1. 下载访问 Anaconda 官方网站下载安装包确保系统已安装 Python2. 安装按照安装包说明进行安装从 Python 官方网站下载并安装3. 创建环境conda create -n numpy_env python3.9python -m venv numpy_env4. 激活环境conda activate numpy_envsource numpy_env/bin/activateLinux/Macnumpy_env\Scripts\activateWindows5. 安装 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) # 打印平均值常见安装报错解决方案附错误截图示例
问题 1Pip 安装时报错
错误示例
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问题 2Anaconda 安装时报错
错误示例
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-tutorialNumPy 入门指南https://numpy.org/devdocs/user/quickstart.htmlNumPy 环境搭建教程https://www.geeksforgeeks.org/how-to-install-numpy-on-windows/NumPy 学习笔记https://www.jianshu.com/p/4e4d5c1e7e8bNumPy 初学者教程https://github.com/rougier/numpy-100NumPy 常见问题解答https://numpy.org/doc/stable/user/troubleshooting.htmlNumPy 源码分析https://github.com/numpy/numpyNumPy 速查表https://www.kaggle.com/learn/overviewNumPy 实战案例https://www.tensorflow.org/tutorials/quickstart/beginnerNumPy 书籍推荐https://www.springer.com/gp/book/9781484242452NumPy 视频教程https://www.youtube.com/watch?vQUT1VHiLmmINumPy 交互式学习https://colab.research.google.com/
希望这篇文章能帮助你成功地搭建 NumPy 环境并进行初体验。这篇文章包含了详细的原理介绍、代码示例、源码注释以及案例等。希望这对您有帮助。如果有任何问题请随私信或评论告诉我。