在 Numpy 中,三维数组(张量)是通过嵌套列表创建的,每个维度可以看作是一个更高维度的数组的元素。你提供的三维张量如下:

import numpy as np

tensor = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

这个张量可以看作是一个 2x2x2 的数组(即 2 个 2x2 的矩阵)。让我们详细解释一下这个三维张量的结构,并说明如何对应到三维坐标。

张量的结构

这个张量可以拆分为两个 2x2 的矩阵:

第一个 2x2 矩阵:

[[1, 2],
 [3, 4]]

第二个 2x2 矩阵:

[[5, 6],
 [7, 8]]

三维坐标的对应关系

对于一个三维张量 tensor[i][j][k]i 是第一个维度的索引,j 是第二个维度的索引,k 是第三个维度的索引。具体来说:

  • 第一个维度 i 表示选择哪一个 2x2 矩阵(0 或 1)
  • 第二个维度 j 表示选择矩阵中的哪一行(0 或 1)
  • 第三个维度 k 表示选择矩阵中的哪一列(0 或 1)

具体来说,tensor[i][j][k] 对应的值如下:

  • tensor[0][0][0] 对应元素 1

  • tensor[0][0][1] 对应元素 2

  • tensor[0][1][0] 对应元素 3

  • tensor[0][1][1] 对应元素 4

  • tensor[1][0][0] 对应元素 5

  • tensor[1][0][1] 对应元素 6

  • tensor[1][1][0] 对应元素 7

  • tensor[1][1][1] 对应元素 8

一般化的 n* n * n 三维张量

对于一个一般化的 nnn 三维张量,假设 tensor 是一个大小为 nnn 的三维数组,访问其元素的方式如下:

  • tensor[i][j][k],其中 i 从 0 到 n-1,j 从 0 到 n-1,k 从 0 到 n-1

三维坐标 (i, j, k) 对应的元素在三维张量中表示第 i 个 n*n 矩阵中的第 j 行,第 k 列。

例子

假设 n = 3,则一个 3x3x3 的张量可能如下所示:

tensor = np.array([
    [[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]]
])

在这个例子中:

  • tensor[0][0][0] 是 1
  • tensor[0][2][2] 是 9
  • tensor[2][0][0] 是 19
  • tensor[2][2][2] 是 27
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐