2016-08-04 6 views
0

私はnumpy.deleteの機能を理解しようとしていましたが、何か変わったことがありました。ここではプログラムがあります:私はa=np.delete(a,[a[6]])を置くときアレイ上でnumpy.deleteを複数使用するとエラーが発生しますか?

>>>import numpy as np 
>>>a = np.arange(10) 
>>> a 
array([0, 1, 2, 3, 4, 6, 7, 9]) 
>>> a[5] 
5 
>>> a=np.delete(a,[a[5]]) 
>>> a 
array([0, 1, 2, 3, 4, 6, 7, 8, 9]) #so far so good 
>>> a[6] 
7 
>>> a=np.delete(a,[a[6]]) 
>>> a 
array([0, 1, 2, 3, 4, 6, 7, 9]) 

だから... ...、右、配列から数7を削除すると期待すべきですか?アレイの番号8(用語a[7])が削除されたのはなぜですか?a[6]
また、最初の削除後に配列からa[0](= 0)を削除しようとすると、私は気付くことができませんでした。常に1つ前の用語を削除します。どのようなアイデアを削除するには?

答えて

1

第2引数は、要素自体ではなく、削除する要素ののインデックスである必要があります。最初のケースで

a=np.delete(a,6) 

[5] 5に等しくなるように起こったので、指標値が同じであったので、それだけで働きました。

あなたが持っているときは:あなたは、[6] = 7があるので、第七要素を削除している

a=np.delete(a,[a[6]]) 

+0

ありがとうございました。私はこの機能が初めてで、a [i]がパラメータであると考えました。しかし今は意味があります。ありがとう! –

+0

'np.delete'はリスト' remove'と同じではありません。 – hpaulj

関連する問題