我有一个类似下面展示的多维数组。
我想弹出所有最后的元素并将它们附加到一个单独的列表中。
例如: -
例如: -
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])
我以为它会起作用,但没有起作用。有人能检查一下代码或提供另一种方法吗?
输出应该是:
train_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 应该是已删除元素的列表。
train_x.append(train[i][j][k][:-1])
这里应该改为train[i][j][k][-1]
,而不是train[i][j][k][:-1]
。 - Kashyap KN