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

NumPy 简介与安装

NumPy 简介与安装

目录

  • NumPy 简介
  • NumPy 的优势
  • 安装 NumPy
  • 验证安装
  • 基本使用示例

NumPy 简介

NumPy(Numerical Python)是 Python 中用于科学计算的基础库,提供了高性能的多维数组对象和工具。

主要特点

  1. 多维数组对象:ndarray,高效存储和操作多维数据
  2. 数学函数库:大量数学、统计和线性代数函数
  3. 广播机制:对不同形状数组进行运算
  4. C/C++ 集成:底层用 C 实现,性能高效
  5. 广泛支持:许多科学计算库的基础

为什么使用 NumPy?

# Python 列表运算(慢)
python_list = [1, 2, 3, 4, 5]
result = [x * 2 for x in python_list]
print(result)  # [2, 4, 6, 8, 10]# NumPy 数组运算(快)
import numpy as np
numpy_array = np.array([1, 2, 3, 4, 5])
result = numpy_array * 2
print(result)  # [2 4 6 8 10]

NumPy 的优势

1. 性能优势

import numpy as np
import time# 创建大数据集
size = 1000000
python_list = list(range(size))
numpy_array = np.arange(size)# Python 列表运算时间
start = time.time()
result1 = [x * 2 for x in python_list]
time1 = time.time() - start# NumPy 数组运算时间
start = time.time()
result2 = numpy_array * 2
time2 = time.time() - startprint(f"Python 列表: {time1:.6f} 秒")
print(f"NumPy 数组: {time2:.6f} 秒")
print(f"NumPy 快 {time1/time2:.0f} 倍")

2. 内存效率

import numpy as np
import sys# Python 列表内存占用
python_list = [1, 2, 3, 4, 5]
print(f"Python 列表内存: {sys.getsizeof(python_list)} 字节")# NumPy 数组内存占用
numpy_array = np.array([1, 2, 3, 4, 5])
print(f"NumPy 数组内存: {numpy_array.nbytes} 字节")
print(f"NumPy 节省内存: {(sys.getsizeof(python_list) - numpy_array.nbytes) / sys.getsizeof(python_list) * 100:.1f}%")

3. 丰富的功能

NumPy 提供了丰富的数学和科学计算功能,无需自己实现。


安装 NumPy

方法 1:使用 pip(推荐)

pip install numpy

方法 2:使用 conda

conda install numpy

方法 3:从源码安装

git clone https://github.com/numpy/numpy.git
cd numpy
python setup.py install

安装特定版本

# 安装特定版本
pip install numpy==1.24.0# 安装最新版本
pip install --upgrade numpy

验证安装

检查版本

import numpy as np# 查看 NumPy 版本
print(f"NumPy 版本: {np.__version__}")# 查看配置信息
print(np.show_config())

基本测试

import numpy as np# 创建数组
arr = np.array([1, 2, 3, 4, 5])
print(f"创建的数组: {arr}")
print(f"数组类型: {type(arr)}")
print(f"数组形状: {arr.shape}")
print(f"数组维度: {arr.ndim}")
print(f"数组数据类型: {arr.dtype}")# 基本运算
print(f"数组求和: {arr.sum()}")
print(f"数组平均值: {arr.mean()}")
print(f"数组最大值: {arr.max()}")
print(f"数组最小值: {arr.min()}")

基本使用示例

示例 1:创建和操作数组

import numpy as np# 创建一维数组
arr1d = np.array([1, 2, 3, 4, 5])
print(f"一维数组: {arr1d}")# 创建二维数组
arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(f"\n二维数组:\n{arr2d}")# 数组运算
print(f"\n数组乘以 2:\n{arr1d * 2}")
print(f"\n数组平方:\n{arr1d ** 2}")

示例 2:数组属性

import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6]])print(f"数组:\n{arr}")
print(f"形状: {arr.shape}")      # (2, 3)
print(f"维度: {arr.ndim}")        # 2
print(f"大小: {arr.size}")        # 6
print(f"数据类型: {arr.dtype}")    # int64
print(f"元素大小: {arr.itemsize}") # 8 字节
print(f"总内存: {arr.nbytes}")     # 48 字节

示例 3:数学运算

import numpy as npa = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])print(f"数组 a: {a}")
print(f"数组 b: {b}")
print(f"加法: {a + b}")
print(f"减法: {a - b}")
print(f"乘法: {a * b}")
print(f"除法: {a / b}")
print(f"幂运算: {a ** 2}")
print(f"点积: {np.dot(a, b)}")

示例 4:数组统计

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])print(f"数组: {arr}")
print(f"求和: {arr.sum()}")
print(f"平均值: {arr.mean()}")
print(f"中位数: {np.median(arr)}")
print(f"标准差: {arr.std()}")
print(f"方差: {arr.var()}")
print(f"最大值: {arr.max()}")
print(f"最小值: {arr.min()}")
print(f"最大值位置: {arr.argmax()}")
print(f"最小值位置: {arr.argmin()}")

总结

NumPy 是 Python 科学计算的基础库:

  1. 高性能:比纯 Python 快得多
  2. 内存高效:比列表占用更少内存
  3. 功能丰富:大量数学和科学计算函数
  4. 易于使用:简洁的 API

http://www.dtcms.com/a/581127.html

相关文章:

  • AWS CloudFront 可观测最佳实践
  • 化学结构式乱码?InDraw与ChemDraw/Word/WPS兼容性完整指南
  • npm run 的工作原理和工作流程
  • 本地搭建Flinkcdc-mysql-kafka-flink-Doris实时数据集成
  • 极简风网站网站制作周期
  • 【Hadoop】hadoop3.3.1完全分布式配置
  • 如何安装 PDF Reader Pro for Mac v3.2.1.0?超简单DMG安装步骤(附安装包)
  • XML与CSS:构建现代网页的关键技术
  • 无锡品牌学会网站建设wordpress账号注册页面
  • 一次由 PageHelper 分页污染引发的 Bug 排查实录
  • 记录一个IDEA的神奇bug
  • Spark-3.5.7文档3 - Spark SQL、DataFrame 和 Dataset 指南
  • 无需 iTunes,将 iPhone 语音备忘录传输到电脑
  • 三个好思路:SQL并行化处理、混淆矩阵和特征交叉
  • 5 种无需 iTunes 将 iPad 照片传输到电脑的方法
  • 网站制作网站设计自助建站网站程序源码
  • Jenkins 定时触发(cron)使用说明
  • Kubernetes 架构
  • 自己做有趣的网站娱乐网站名字
  • 黑马JAVAWeb-09 文件上传-文件存储到服务器本地磁盘-文件存储在阿里云
  • 医疗小程序04添加就诊人
  • uboot下查看分区
  • 微信小程序camera相机帧转图片base64
  • Agentic AI基础设施实践经验系列(四):MCP服务器从本地到云端的部署演进
  • Linux系统性基础学习笔记
  • DDR5 DFE(Decision Feedback Equalizer)
  • 前程无忧企业官方网站logo制作下载
  • 做网站难学吗wordpress替换百度站内搜索
  • STM32项目分享:基于单片机的空气质量检测系统设计
  • Windows 下PostgreSQL 数据库相关及 n8n .env文件的配置