我有 328 張大小為 128*128 的灰度影像,我將它們全部轉換為形狀為 (128,128,328) 的 3D 陣列。現在我想將它轉換成 5 個分離的 3d 陣列,形狀為 (128,128,64) 而不改變順序。

如您所見,328 不能被 64 整除,并且使用 dsplit 函式不起作用。
有什么方法可以動態地在深度軸上對 3d 陣列進行切片?
uj5u.com熱心網友回復:
import numpy as np
arr = np.zeros(shape=(128,128,328))
# make aray divisible by 5 (trim it to the depth of 320)
arr = arr[:, :, :320]
# Split array
arrays = np.dsplit(arr, 5)
for array in arrays:
print(array.shape)
輸出:
(128, 128, 64)
(128, 128, 64)
(128, 128, 64)
(128, 128, 64)
(128, 128, 64)
編輯:這是以動態方式撰寫的相同內容。
import numpy as np
num_subarrays = 5
subarray_depth = 64
# Initialize array
arr = np.zeros(shape=(128,128,328))
# make aray divisible by subarray_depth
arr = arr[:, :, :(arr.shape[2] // subarray_depth) * subarray_depth]
# Split array
arrays = np.dsplit(arr, num_subarrays)
for array in arrays:
print(array.shape)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455278.html
上一篇:自動填充單元格VBA
下一篇:快遞路線引數說明
