numpy.delete 使我的数组变平

Ame*_*ina 0 python numpy multidimensional-array

假设我执行以下操作:

my_array = np.array([[1,2,3]])
my_new_array = np.delete(my_array, [])
Run Code Online (Sandbox Code Playgroud)

最后一行将转换my_array为:

my_new_array = np.array([1,2,3]) # It flattens the array one level
Run Code Online (Sandbox Code Playgroud)

这不是我所期望的。

如果相反,我有:

my_array = np.array([[1,2,3], [4,5,6]])
my_new_array = np.delete(my_array, [])
Run Code Online (Sandbox Code Playgroud)

我会得到:

my_new_array = np.array([[1,2,3], [4,5,6]])
Run Code Online (Sandbox Code Playgroud)

这是我所期望的。如何确保调用np.delete(my_array, [])不会使我的数组变平?

tia*_*ago 6

文档

numpy.delete(arr, obj, 轴=无)

轴:整数,可选

删除 obj 定义的子数组所沿的轴。如果axis为None,则obj应用于扁平化数组

因为您没有向 提供任何东西axis,所以它会展平数组。您可以执行以下操作:

>>> print np.delete(my_array, [], axis=0)
array([[1, 2, 3],
       [4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)

这似乎是你想要的结果。但是,不清楚为什么要应用为您提供相同数组的转换。