numpy.delete展平我的阵列

时间:2012-12-12 23:26:23

标签: python multidimensional-array numpy

说我做了以下事情:

my_array = np.array([[1,2,3]])
my_new_array = np.delete(my_array, [])

最后一行会将my_array转换为:

my_new_array = np.array([1,2,3]) # It flattens the array one level

这不是我的预期。

如果我有了:

my_array = np.array([[1,2,3], [4,5,6]])
my_new_array = np.delete(my_array, [])

我会得到:

my_new_array = np.array([[1,2,3], [4,5,6]])

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

1 个答案:

答案 0 :(得分:4)

来自documentation

  

numpy.delete(arr,obj,axis = None)

     

axis:int,optional

     

用于删除obj定义的子数组的轴。如果axis为None,则obj应用于 flattened array

因为您没有向axis提供任何内容,所以它会使阵列变平。您可以执行以下操作:

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

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