0

私が次のことをするとします。

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, [])への呼び出しが配列を平坦化しないようにするにはどうすればよいですか?

4

1 に答える 1

6

ドキュメントから:

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

軸:int、オプション

objで定義されたサブ配列を削除する軸。axisがNoneの場合、objはフラット化された配列に適用されます

に何も供給していないためaxis、配列がフラット化されています。次のことができます。

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

それはあなたが望む結果のようです。ただし、同じ配列を提供する変換を適用する理由は不明です。

于 2012-12-12T23:43:47.793 に答える