关于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]

浙公网安备 33010602011771号