【发布时间】:2018-12-02 18:07:06
【问题描述】:
我有一个 3 维 numpy 数组 (temp_X),例如:
[[[23,34,45,56],[34,45,67,78],[23,45,67,78]],
[[12,43,65,43],[23,54,67,87],[12,32,34,43]],
[[43,45,86,23],[23,45,56,23],[12,23,65,34]]]
我想删除每个第三个子数组的第一个元素(突出显示的值)。
下面是我尝试过的代码:
for i in range(len(temp_X)):
temp_X = np.delete(temp_X[i][(len(temp_X[i]) - 1)], [0])
不知何故,当我运行代码时,除了 3 个值之外,整个数组都被删除了。任何帮助深表感谢。提前谢谢你。
【问题讨论】:
-
那么,预期的输出将不是一个常规数组,因为您最终会在每个子数组中得到可变数量的元素?
-
这不是一个“嵌套数组”。这是一个列表的概念。这是一个 3d 数组,形状为 (3,3,4)。您可以切掉一个“列”,但它会影响所有子数组,例如
temp_X[:,:,1:](产生 (3,3,3))。 -
@Divakar 是的,在删除部分之后。我打算将每个子阵列(例如:[[23,34,45,56],[34,45,67,78],[45,67,78]] 展平为 [23,34,45,56, 34,45,67,78,45,67,78]) 之后。
-
您应该重塑(到 2d),然后删除一列。这保持了数组的规则形状。
标签: arrays python-3.x numpy numpy-ndarray