我对Python& Numpy,我正在努力完成以下任务:
鉴于,3D阵列:
arr_3d = [[[1,2,3],[4,5,6],[0,0,0],[0,0,0]],
[[3,2,1],[0,0,0],[0,0,0],[0,0,0]]
[[1,2,3],[4,5,6],[7,8,9],[0,0,0]]]
arr_3d = np.array(arr_3d)
[0,0,0]
的索引。[0,0,0]
的位置切割给定的3D阵列。换句话说,我正在尝试从给定的3D数组中删除填充(在本例中为[0,0,0]
)。
这是我尝试过的,
arr_zero = np.zeros(3)
for index in range(0, len(arr_3d)):
rows, cols = np.where(arr_3d[index] == arr_zero)
arr_3d[index] = np.array(arr_3d[0][:rows[0]])
但是这样做,我不断收到以下错误:
无法将形状...输入数组广播成形状......
我期待这样的事情:
[[[1,2,3],[4,5,6]],
[[3,2,1]]
[[1,2,3],[4,5,6],[7,8,9]]]
任何帮助都将不胜感激。
答案 0 :(得分:2)
首次出现那些predictions = kmeans.predict(input_fn=(lambda:[another_X, None]))
缩减与all()
一起的索引,然后将每个argmax()
切片从2D
数组中切片 -
3D