首页 > 解决方案 > 'int' 对象在 3d 数组中不是可下标的错误

问题描述

我正在尝试逐层访问形状 (7,4,6​​) 的 3D 矩阵中的单个值。我想从一个(行 X 列)访问所有 7 层的值并比较它们,但在访问时出错价值观部分。我也可以按要求的顺序正确打印它们。我写的代码是:

array = [[[-99, -99, -99, -99, -99, -99],
    [-99, -99, -99, -99, -99, -99],
    [-99, -99, -99, -99, -99,   1],
    [-99, -99, -99, -99, -99,   1]],

   [[  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1]],

   [[  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1]],

   [[  1,   1,   1,   1, -99, -99],
    [  1,   1,   1,   1, -99, -99],
    [  1,   1,   1,   1, -99, -99],
    [  1,   1,   1,   1,   1, -99]],

   [[  0,   1,   1,   1,   1,   1],
    [  0,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1],
    [  1,   1,   1,   1,   1,   1]],

   [[-99, -99, -99, -99, -99, -99],
    [-99, -99, -99, -99, -99, -99],
    [-99, -99, -99, -99, -99, -99],
    [-99, -99, -99, -99, -99, -99]],

   [[  0,   0,   0,   0,   0,   0],
    [  0,   0,   0,   0,   0,   1],
    [  0,   0,   1,   1,   1,   1],
    [  0,   1,   1,   1,   1,   1]]]
for i in range(0,4):
    for j in range(0,6):
        for k in range(0,7):
            a = array([k][i][j])
            if (a == 0 and b == 0):
                NN += 1
            elif (a == 0 and b == 1):
                RN += 1
            elif (a == 1 and b == 0):
                NR += 1
            elif (a == 1 and b == 1):
                RR += 1
            else:
                exit
            b = a

RR、NN、NR 和 RN 和 b 被声明为 0 a=in initial state 但我得到

TypeError:'int' 对象不可下标

在最后一行。我在网上看到了它,它说我必须将它转换为字符串才能使用它。有人可以向我解释为什么我们必须这样做以及如何这样做?

标签: pythonmultidimensional-array

解决方案


推荐阅读