说我做了以下事情:
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, [])
的调用不会使我的阵列变平?
答案 0 :(得分:4)
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]])
这似乎是你想要的结果。但是,目前还不清楚为什么要应用一个为您提供相同数组的转换。