关于numpy多维数组、取索引值切片值的理解。一个例子彻底搞懂

例子如下:

场景1:

import numpy as np

a = 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],
     [41, 42, 43, 44],
     [45, 46, 47, 48]],

    [[49, 50, 51, 52],
     [53, 54, 55, 56],
     [57, 58, 59, 60]]
])

print(a[:, 1, :])  # 每一大块我都不挑,我只挑各个块里面的第2行输出,将其取出来

[[ 5  6  7  8]
 [17 18 19 20]
 [29 30 31 32]
 [41 42 43 44]
 [53 54 55 56]]

 

场景2:

import numpy as np

a = 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],
     [41, 42, 43, 44],
     [45, 46, 47, 48]],

    [[49, 50, 51, 52],
     [53, 54, 55, 56],
     [57, 58, 59, 60]]
])


print(a[1, :, :]) # 只选第2大块的内容取出

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

 

场景3:

import numpy as np

a = 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],
     [41, 42, 43, 44],
     [45, 46, 47, 48]],

    [[49, 50, 51, 52],
     [53, 54, 55, 56],
     [57, 58, 59, 60]]
])


print(a[:, :, 1]) # 只选每一块中的第2列内容,将其取出,横着变成行摆放

[[ 2  6 10]
 [14 18 22]
 [26 30 34]
 [38 42 46]
 [50 54 58]]

 

场景4:

import numpy as np

a = 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],
     [41, 42, 43, 44],
     [45, 46, 47, 48]],

    [[49, 50, 51, 52],
     [53, 54, 55, 56],
     [57, 58, 59, 60]]
])


print(a[:, 1, 1]) # 只选每一块中的第2行2列内容,将其取出

[ 6 18 30 42 54]

 

posted @ 2025-05-20 19:27  AlphaGeek  阅读(38)  评论(0)    收藏  举报