[英]Put last term of each sub-array of a multidimensional array to a list
我有一個如下所示的多維數組。 我想最后彈出所有元素並將 append 彈出到單獨的列表中。
例如: -
array([[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 13, 35, 14]], # pop this row [13 ,35, 14]
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 13, 35, 14],
[ 9, 61, 34]], # pop this row [9,61,34]
[[ 0, 0, 0],
[ 0, 0, 0],
[ 13, 35, 14],
[ 9, 61, 34],
[ 54, 127, 105]], # pop this row[54,127,105]
[[ 0, 0, 0],
[ 13, 35, 14],
[ 9, 61, 34],
[ 54, 127, 105],
[ 92, 170, 141]], # pop this row and similarly other rows below...
[[ 13, 35, 14],
[ 9, 61, 34],
[ 54, 127, 105],
[ 92, 170, 141],
[ 19, 88, 73]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 2, 14, 2]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 2, 14, 2],
[216, 192, 173]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31]],
[[ 0, 0, 0],
[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31],
[194, 185, 180]],
[[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31],
[194, 185, 180],
[ 8, 32, 14]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152]],
[[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152],
[206, 188, 181]],
[[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152],
[206, 188, 181],
[ 1, 38, 18]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70]],
[[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70],
[ 56, 51, 49]],
[[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70],
[ 56, 51, 49],
[ 49, 141, 112]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22]],
[[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0]],
[[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0],
[ 8, 5, 4]],
[[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0],
[ 8, 5, 4],
[103, 103, 101]]]])
我嘗試了切片技術,但沒有發生。
如果我將此數組轉換為列表(名為 train)並運行代碼:-
for i in range(len(train)):
for j in range(len(train[i])):
for k in range(len(train[i][j])):
train_x.append(train[i][j][k][:-1])
train_y.append(train[i][j][k][-1])
我以為它會起作用,但沒有起作用。 任何人都可以檢查代碼或為此提供替代方法。
output 應該是:-
火車_x:-
[[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 13, 35, 14]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 13, 35, 14],
[ 9, 61, 34]],
[[ 0, 0, 0],
[ 13, 35, 14],
[ 9, 61, 34],
[ 54, 127, 105]], # this continues below....
[[ 13, 35, 14],
[ 9, 61, 34],
[ 54, 127, 105],
[ 92, 170, 141]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 2, 14, 2]], # I have edited till here but it goes on like this
[[ 0, 0, 0],
[ 0, 0, 0],
[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31]],
[[ 0, 0, 0],
[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31],
[194, 185, 180]],
[[ 2, 14, 2],
[216, 192, 173],
[111, 58, 31],
[194, 185, 180],
[ 8, 32, 14]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152]],
[[ 0, 0, 0],
[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152],
[206, 188, 181]],
[[ 27, 41, 30],
[209, 194, 192],
[181, 156, 152],
[206, 188, 181],
[ 1, 38, 18]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70]],
[[ 0, 0, 0],
[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70],
[ 56, 51, 49]],
[[ 42, 105, 90],
[ 59, 49, 46],
[ 73, 75, 70],
[ 56, 51, 49],
[ 49, 141, 112]]],
[[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150]],
[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22]],
[[ 0, 0, 0],
[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0]],
[[ 0, 0, 0],
[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0],
[ 8, 5, 4]],
[[147, 149, 150],
[ 20, 22, 22],
[ 0, 0, 0],
[ 8, 5, 4],
[103, 103, 101]]]]
train_y 應該是已移除元素的列表。
你有一個 4 維數組。
要僅獲取您在評論中描述的最后“行”,您只需要迭代前 2 個維度,並且在第 3 個維度中僅獲取最后一個元素(無需迭代k
,只需使用-1
),並且根本不索引第 4 維:
for i in range(len(train)):
for j in range(len(train)):
train_x.append(train[i][j][:-1])
train_y.append(train[i][j][-1])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.