博客
关于我
NumPy 库详细介绍-ChatGPT4o作答
阅读量:801 次
发布时间: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 + uWSGI + Flask + Vhost
查看>>
Nginx - Header详解
查看>>
Nginx Location配置总结
查看>>
Nginx upstream性能优化
查看>>
Nginx 中解决跨域问题
查看>>
Nginx 动静分离与负载均衡的实现
查看>>
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
查看>>
Nginx 反向代理解决跨域问题
查看>>
Nginx 反向代理配置去除前缀
查看>>
nginx 后端获取真实ip
查看>>
Nginx 学习总结(17)—— 8 个免费开源 Nginx 管理系统,轻松管理 Nginx 站点配置
查看>>
nginx 常用配置记录
查看>>
Nginx 我们必须知道的那些事
查看>>
Nginx 的 proxy_pass 使用简介
查看>>
Nginx 的配置文件中的 keepalive 介绍
查看>>
Nginx 负载均衡与权重配置解析
查看>>
Nginx 负载均衡详解
查看>>
nginx 配置 单页面应用的解决方案
查看>>
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx下配置codeigniter框架方法
查看>>