我必須有兩個相同長度的串列 X 和 Y。我想將長度為 2000 的塊統一拆分兩個串列。串列 X 和 Y 的長度均為 3671460。例如:
#input
X = [1,2,3,4,5]
Y = [0,1,0,1,1]
#Expected output
X = [[1,2],[3,4],[5]]
Y = [[0,1],[0,1],[1]]
示例ofcourse 顯示了一個小得多的串列。但我真正的名單是 3671460 長。如何將 X 和 Y 分成塊,其中每個塊都有 2000 個示例?這些塊稍后將輸入到我的深度學習模型中。見解將不勝感激。
uj5u.com熱心網友回復:
那這個呢?
a = [1, 2, 3, 4, 5]
b = [a[x:x 2] for x in range(0, len(a), 2)]
在您的情況下,2 可能是 2000。
uj5u.com熱心網友回復:
如果您的串列長度不同,或者不能均勻整除,您可能需要使用zip_longest“填充”空值。此處的代碼將每個串列中的塊配對:
from itertools import zip_longest
#input
X = [1,2,3,4,5,6,7,8]
Y = [0,1,0,1,0]
# Number of items in each 'chunk'
count = 3
print(
list(
zip_longest(
zip_longest(*[iter(X)] * count),
zip_longest(*[iter(Y)] * count)
)
)
)
# ((1, 2, 3), (0, 1, 0)), ((4, 5, 6), (1, 0, None)), ((7, 8, None), None)]
您可以None通過傳遞引數來替換輸出fillvalue='x'。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/388320.html
