博客
关于我
NumPy 库详细介绍-ChatGPT4o作答
阅读量:798 次
发布时间:2023-02-17

本文共 2541 字,大约阅读时间需要 8 分钟。

NumPy 库详细介绍

NumPy(Numerical Python)是 Python 中用于科学计算的基础库之一,提供了强大的数组对象 ndarray 以及大量的数学函数。它是许多科学计算和数据分析库的基础,包括 Pandas、Matplotlib 和 TensorFlow 等。NumPy 高效地处理大型数据集和矩阵运算,支持矢量化运算,使得科学计算更加高效。

安装与导入

NumPy 可以通过 pip 安装:

pip install numpy

导入方式如下:

import numpy as np

NumPy 核心概念

2.1 ndarray 对象

NumPy 的核心对象是 ndarray,它是一种多维数组对象,支持矢量化的数学运算和高级索引。相比 Python 原生的列表,ndarray 在内存占用和计算效率上要高得多。

  • 一维数组(Vector):类似于列表,包含一系列元素。
  • 二维数组(Matrix):常用于表示矩阵,可以进行线性代数计算。
  • 多维数组:可以处理三维及更高维度的数据。

创建 ndarray 的常见方式有:

import numpy as np# 一维数组arr = np.array([1, 2, 3, 4, 5])# 二维数组(矩阵)arr2d = np.array([[1, 2, 3], [4, 5, 6]])# 三维数组arr3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

2.2 数组属性

ndarray 对象具有一些非常有用的属性,例如:

  • .shape:返回数组的维度(形状),例如 (3, 4) 表示 3 行 4 列。
  • .ndim:返回数组的维度数。
  • .size:返回数组的元素总数。
  • .dtype:返回数组元素的数据类型。
  • .itemsize:返回数组中每个元素的字节大小。
arr = np.array([1, 2, 3])print(arr.shape)  # 输出 (3,)print(arr.ndim)   # 输出 1print(arr.size)   # 输出 3print(arr.dtype)  # 输出 int64

2.3 数组的索引与切片

NumPy 数组的索引和切片方法比 Python 原生的列表更加灵活,可以使用整数索引、切片、布尔索引和花式索引。

arr = np.array([10, 20, 30, 40])print(arr[2])  # 输出 30arr = np.array([1, 2, 3, 4, 5])print(arr[1:4])  # 输出 [2, 3, 4]arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(arr2d[1, 2])  # 输出 6print(arr2d[0:2, 1:3])  # 输出 [[2, 3], [5, 6]]arr = np.array([1, 2, 3, 4, 5])print(arr[arr > 2])  # 输出 [3, 4, 5]arr = np.array([1, 2, 3, 4, 5])print(arr[[0, 2, 4]])  # 输出 [1, 3, 5]
  1. NumPy 常见操作
  2. 3.1 数组的数学运算

    NumPy 提供了许多高效的数学运算,支持按元素操作和广播机制。

    arr = np.array([1, 2, 3])arr2 = np.array([4, 5, 6])print(arr + arr2)  # 输出 [5, 7, 9]print(arr * arr2)  # 输出 [4, 10, 18]arr = np.array([1, 2, 3])arr2 = np.array([10])print(arr + arr2)  # 输出 [11, 12, 13]arr = np.array([0, np.pi/2, np.pi])print(np.sin(arr))  # 输出 [0., 1., 0.]

    3.2 聚合操作

    NumPy 提供了许多聚合函数,用于计算数组的最大值、最小值、均值、标准差等。

    arr = np.array([1, 2, 3, 4, 5])print(np.sum(arr))  # 输出 15print(np.mean(arr))  # 输出 3.0print(np.max(arr))  # 输出 5

    3.3 数组的形状与重塑

    arr = np.array([1, 2, 3, 4, 5, 6])reshaped = arr.reshape(2, 3)print(reshaped)
    arr = np.array([[1, 2], [3, 4]])flat = arr.flatten()print(flat)  # 输出 [1, 2, 3, 4]arr = np.array([[1, 2], [3, 4]])print(arr.T)  # 输出 [[1, 3], [2, 4]]

    3.4 线性代数操作

    A = np.array([[1, 2], [3, 4]])B = np.array([[5, 6], [7, 8]])print(np.dot(A, B))  # 或 A @ BA = np.array([[1, 2], [3, 4]])inv_A = np.linalg.inv(A)print(inv_A)A = np.array([[4, -2], [1, 1]])eigenvalues, eigenvectors = np.linalg.eig(A)print("Eigenvalues:", eigenvalues)print("Eigenvectors:", eigenvectors)

    3.5 随机数生成

    arr = np.random.randint(1, 10, size=5)print(arr)arr = np.random.rand(3, 2)print(arr)arr = np.random.randn(2, 3)print(arr)

转载地址:http://pgjfk.baihongyu.com/

你可能感兴趣的文章
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NHibernate学习[1]
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>