博客
关于我
NumPy 库详细介绍-ChatGPT4o作答
阅读量:805 次
发布时间: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/

你可能感兴趣的文章
NMAP网络扫描工具的安装与使用
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
查看>>
nodejs libararies
查看>>
nodejs-mime类型
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
Node入门之创建第一个HelloNode
查看>>
NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
查看>>
npm run build 失败Compiler server unexpectedly exited with code: null and signal: SIGBUS
查看>>
npm WARN deprecated core-js@2.6.12 core-js@<3.3 is no longer maintained and not recommended for usa
查看>>