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

【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 环境并进行初体验。这篇文章包含了详细的原理介绍、代码示例、源码注释以及案例等。希望这对您有帮助。如果有任何问题请随私信或评论告诉我。


http://www.kler.cn/a/519650.html

相关文章:

  • 【Docker】ubuntu中 Docker的使用
  • 面向长文本的多模型协作摘要架构:多LLM文本摘要方法
  • MyBatis框架基础学习(1)
  • 低代码系统-产品架构案例介绍、轻流(九)
  • 亚博microros小车-原生ubuntu支持系列:10-画笔
  • 【架构面试】三、高可用高性能架构设计
  • Gradle自定义任务指南 —— 释放构建脚本的无限可能
  • 解读2025年生物医药创新技术:展览会与论坛的重要性
  • 即梦(Dreamina)技术浅析(一)
  • 自动驾驶中的多传感器时间同步
  • 【自定义函数】编码-查询-匹配
  • python爬虫 爬取站长素材 (图片)(自学6)
  • Pyecharts之词云图、面积图与堆叠面积图
  • 一文讲解Java中的重载、重写及里氏替换原则
  • uniapp商城项目之商品详情
  • 在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
  • 家政预约小程序10首先显示服务内容
  • 有关ORM
  • golang命令大全1--概述
  • Maven面试试题及其答案解析