Skip to content

Manipulando Objetos 3D e 4D

Manipulando objetos 3D e 4D em NumPy

3 Dimensões

Criando um array de 3 dimensões:

python
arr_3d = 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]
    ]
])

print(arr_3d)
out:
     [[[ 1  2  3  4]
       [ 5  6  7  8]
       [ 9 10 11 12]]

      [[13 14 15 16]
       [17 18 19 20]
       [21 22 23 24]]]


Vamos saber o número de dimensões de um objeto:

python
arr_3d.ndim
out:
3


Sabendo a forma (shape) da array:

python
print(arr_3d.shape)
out:
(2, 3, 4)

2 elementos, com 3 linhas e 4 elementos em cada linha.


4 Dimensões

Criando um array de 4 dimensões:

python
arr_4d = 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, 28, 29, 30],
            [31, 32, 33, 34, 35],
            [36, 37, 38, 39, 40]
        ],
          [
            [1, 2, 3, 4, 5],
            [6, 7, 8, 9, 10],
            [11, 12, 13, 14, 15],
            [16, 17, 18, 19, 20]
        ]
    ],
    [
        [
            [41, 42, 43, 44, 45],
            [46, 47, 48, 49, 50],
            [51, 52, 53, 54, 55],
            [56, 57, 58, 59, 60]
        ],
        [
            [61, 62, 63, 64, 65],
            [66, 67, 68, 69, 70],
            [71, 72, 73, 74, 75],
            [76, 77, 78, 79, 80]
        ],
          [
            [1, 2, 3, 4, 5],
            [6, 7, 8, 9, 10],
            [11, 12, 13, 14, 15],
            [16, 17, 18, 19, 20]
        ]
    ]
])

print(arr_4d)
out:
     [[[[ 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 28 29 30]
        [31 32 33 34 35]
        [36 37 38 39 40]]

       [[ 1  2  3  4  5]
        [ 6  7  8  9 10]
        [11 12 13 14 15]
        [16 17 18 19 20]]]


      [[[41 42 43 44 45]
        [46 47 48 49 50]
        [51 52 53 54 55]
        [56 57 58 59 60]]

       [[61 62 63 64 65]
        [66 67 68 69 70]
        [71 72 73 74 75]
        [76 77 78 79 80]]

       [[ 1  2  3  4  5]
        [ 6  7  8  9 10]
        [11 12 13 14 15]
        [16 17 18 19 20]]]]


Sabendo o número de dimensões do array:

python
arr_4d.ndim
out:
4


Sabendo a forma (shape) da array

python
print(arr_4d.shape)
out:
(2, 3, 4, 5)

Ele está nos dizendo que é:

2 blocos:
    com 3 estruturas cada um:
        com 4 linhas em cada estrutura:
             com 5 elementos em cada linha.

Fatiamento de um Array de 4 Dimensões (SLICING)

Como estamos manipulando um elemento de 4 dimensões, precisamos defiir qual bloco, qual estrutura, qual linha e qual elemento

[bloco, estrutura, linha, elemento]


Retornando o elemento, do bloco de índice 0, na estrutura de índice 2, na linha de índice 1, todos os elementos (Como não foi específicado o elemento, ele retorna a linha inteira!)

python
arr_4d[0,2,1]
out:
arr_4d[0,2,1,4]


Retornando o elemento de bloco de índice 0, na estrutura de índice 2, na linha de índice 1, o elemento de índice 4

python
arr_4d[0,2,1,4]
out:
10