Python中的3D数组

2025年1月5日 | 阅读8分钟

3D 数组简介

在基础编程语言中,数组被认为是基本的数据结构,它们的功能包括组织和操作大量数值和逻辑变量。此外,一维数组是列表,二维数组包含作为网格或矩阵的数据。很可能,3D 数组通过添加第三个维度来表示三维形状或体积。通过其处理多维数组(如三维数组)的能力,该语言提供了广泛的活跃库和原生功能,这对开发人员构成了挑战。

理解 3D 数组

在深入探讨 Python 中 3D 数组的详细工作原理之前,正确理解数组作为起点同样重要。3D 数组更像是……当我们更具体地命名它时。它是一个三维数组,可以看作是数组的数组。放置在其中的原子元素反映了元素周期表的行和列;每一层都是各种层级的集合。理论上,三维数组可以与排列起来构建类似立方体的二维数组进行比较。

Python 中 3D 数组的声明和初始化

Python 有多种方法可以定义 3D 数组并为其元素分配初始值。人性化的可视化方案可以包括连接部署数据特征,并最终形成梦之队。以下是如何使用嵌套列表声明和初始化简单 3D 数组的方法:这是如何使用三维列表在 Python 中创建和初始化简单的三维数组的方法。

访问 3D 数组中的元素

在 3D 数组操作中,可以通过索引技术访问元素。

您需要处理的最后一个操作是访问数组的元素。元素访问是一种更复杂的机制,需要跨所有维度进行直线、连续的遍历。循环和列表推导式的嵌套展示了 Python 编程技能如何实现这一点。考虑以下示例,其中我们访问并打印先前初始化的 3D 数组的所有元素:考虑这个示例,其中引用了数组,并使用命令提取元素。

输出

1 2 3 
4 5 6 
7 8 9 

10 11 12 
13 14 15 
16 17 18 

19 20 21 
22 23 24 
25 26 27

说明

  • 3D 数组 'array_3d' 是通过 Python 中的嵌套列表结构初始化的,该结构表现出 3D 数组的行为。
  • 此外,('array_3d') 中的每个项目都是一个列表数组,表示 3D 数组的第三个维度。
  • 每个层级由许多列表组成,每个列表代表该范围内的某一行。
  • 在每一行中,数据将被分解成组成元素,这些元素是 3D 数组的组成部分。
  • 代码在嵌套循环遍历 3D 数组的层、行和组成部分的循环中。
  • 前两个循环读取 'array_3d' 层中的空间错误。
  • 在每一层中,我们发现另一个循环来处理行。
  • 在各个元素中,第三个循环遍历构成整行的所有对象。
  • 'print()' 函数打印数组中的每个元素。这是通过 end= '' 完成的,以便所有元素都水平显示。
  • print() 语句在行中打印此行的所有元素,然后另一个 print() 将其打印到新行。
  • 一个超出所有循环的新的 'print()' 被涉及,以便可以使用空行来分隔不同的层,以提高可读性。

操作 3D 数组

Python 解释器提供了各种数组操作例程,可以更改数组的形状、切片并应用数学运算。让我们探讨其中一些技术。

1. 重塑 3D 数组

另一方面,调整大小是指更改现有 3D 数组的大小。NumPy 库是 Python 中增长最快、功能最强大的数值计算库,它提供了 'reshape()' 函数来执行此类任务。下面是一个演示如何重塑 3D 数组的示例。

代码

输出

[[ 1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18]
 [19 20 21 22 23 24 25 26 27]]

说明

  • 该程序开始导入 NumPy 库并为其分配一个简短的名称 np。
  • 定义并使用嵌套列表初始化了一个名为 'array_3d' 的三维数组。
  • 每个嵌套的列表是 3D 数组中的一个级别。
  • 每个层级又包含一个 3x3 矩阵
  • NumPy 模块中的 'np.array()' 函数将嵌套列表转换为 NumPy 数组 array_3d_np。
  • 'np.reshape()' 用于将 3D 数组重塑为 ('3, 9') 维度的 2D 数组。
  • 这样,重塑后的数组将具有 3 行 9 列。
  • 这样,存储在变量 'reshaped_array' 中的生成的 2D 数组将被创建。
  • 最后,打印 'reshaped_array' 以显示重塑后的数组。

2. 3D 数组上的切片操作

切片是一种工具,可让您提取满足特定标准的数组的特定索引。Python 程序以更简洁高效的方式生成切片语法和子数组的提取。以下是如何在 3D 数组上执行切片操作的示例。

代码

输出

[[[13, 14, 15]], [[22, 23, 24]]]

说明

  • 因此,经过修改的代码使用列表推导式遍历 3D 数组 (array_3d) 中的每个层级。
  • 对于每个层级,它首先切片前两行 ([0:2]),然后切片第二个列 ([1:])。
  • 执行切片操作以获取我们选择的子数组。
  • 最后,显示子数组。

常见应用

  1. 计算机图形学:在 3D 图形中,数据数组由 3D 数组计算,这些数组有助于建模和渲染三维对象和场景。为此,语音的整个装配对应于三维空间中的特定体素或点。这至关重要,因为它构成了游戏、VR、模拟和动画中照片级真实感 3D 图像的基础。
  2. 医学成像:在医学成像中,3D 数组存储并处理从计算机断层扫描 (CT)、磁共振成像 (MRI) 和超声成像等过程获得的三维数据。这表明了上述医学应用的数组,例如三维超声可视化和器官及组织的分析。此过程开发了诊断、治疗策略和手术模拟。
  3. 科学计算:在科学计算中,3D 数组充当各种类型空间数据的各种类型信息的容器。这些数据可以在模拟或实验中生成,也可以从现实世界的观测中获得。它们在物理学、化学、地质学和环境科学中受到高度重视,例如,在模拟复杂过程、处理数据和可视化输出时。例如,一个人可以产生类似于动画流体运动、模拟地质构造或研究分子结构的模拟。
  4. 图像处理:在 3D 成像中,数据集被表示为数据体积中堆叠的 2D 图像序列。这些数据由共聚焦显微镜、磁共振成像 (MRI) 或计算机断层扫描 (CT) 生成。它们允许执行更复杂的操作,如滤波、分割、配准和特征提取,使我们能够诊断疾病、进行科学研究和可靠地检查工业设备。
  5. 地理信息系统 (GIS):在 3D 数组应用程序中,地理信息系统利用地形高程数据、获取卫星图像和空间属性的开发。这就是它们如何构建以实现三维地图和模型,用于土壤和环境监测、灾害管理和导航。
  6. 材料科学与工程:材料科学利用 3D 数组神经形态系统来研究材料的微观结构,包括合金、复合材料和聚合物。这使得它们能够分析材料在各种条件下的性能,确定材料的行为,并将制造过程优化到所需的特性级别。

3D 数组的优点

  1. 空间表示:3D 数组很有吸引力,因为它们非常接近直观和自然地在第三维度中表示空间数据的方式。这对于计算机图形学、医学成像和 GIS 等领域尤其重要,在这些领域,对象或数据点之间的空间关系对于可视化或分析数据至关重要。
  2. 高效存储:与常规的 2D 数据存储形式不同,3D 数组将数据组织成三维体积,这有助于存储体积数据。这在处理大数据时尤其有用,因为它使用户能够比其他数据结构(如平面或多维结构)以更小的内存空间表示和压缩这些数据结构。
  3. 快速访问和操作:3D 数组操作速度非常快,因为 3D 数组中的元素比其他数据结构更容易访问和操作。这种效率在考虑实时处理任务时最为明显,例如计算机图形渲染、模拟和科学计算。
  4. 并行处理:许多现代 PC,例如多核或 GPU,都针对并行处理实现进行了优化。3D 矩阵可以被分割并并行处理,以更快地执行数据密集型任务。这有助于利用系统中的计算效率来执行数据密集型任务。
  5. 算法兼容性:许多不同的算法和计算技巧都已构建,可以方便地与 3D 数组(作为多维数据结构)配合使用。开发人员可以轻松地执行滤波、卷积和插值以及特征提取等操作。
  6. 与库的互操作性:语言的选择也很重要。3D 数组已集成到每个 Python 库和框架中,如 NumPy、MATLAB 和 R。它们速度惊人,因此可以快速测试原型并立即创建高质量的应用程序。

结论

总而言之,在 Python 中“采用”3D 数组的最终结果将促进数据表示、操作和分析。了解声明、初始化、操作和常见应用等基础知识,程序员就可以在实际计算问题中使用 3D 数组,例如领域数据存储、数据挖掘和分析、图形渲染等。无论是构建多维数据结构、物理对象模拟,还是任何涉及体积作为因素的内容,您都可以信赖 3D 数组作为您的重要助手。像 NumPy 这样的库,其针对多维数组的优化函数和操作,也增加了 Python 的现有功能,从而帮助开发人员从容而准确地应对困难而复杂的挑战。