2

テキストファイルから配列を読み込んでいて、特定の値以下のデータを削除したいのですが、削除された値の配列内の位置も知りたいので、これを使用して他のデータを削除できます。次のコードは、値が次の場合にデータを削除しますが、削除されたデータのインデックスを見つけるにはどうすればよいですか?

    y=np.genfromtxt('01_temp.txt').T[0]
    b=np.std(y)
    c=np.mean(y)
    low=c-b
    high=c+b
    x=[i for i in y if i>low]
    print x

以下のコードも上記と同じだと思います

y=np.genfromtxt('01_temp.txt').T[0]
b=np.std(y)
c=np.mean(y)
low=c-b
high=c+b
ok=y>low
y[ok]=low

設定した範囲外の値のインデックスを見つけるにはどうすればよいですか?

たとえば、私のリストが [5, 5, 8, 9, 0, 10, 3] で、low=4 の場合、この場合は [4,6] となる 4 以下のインデックスを返したい

4

2 に答える 2

0

このようなものはあなたのために働きませんか:

>>> y = [3,4,5,3,2,4,6,3]
>>> low = 3
>>> x=[(i,j) for i,j in enumerate(y) if i>low]
>>> x
[(4, 2), (5, 4), (6, 6), (7, 3)]
>>> x=[(i,j) for i,j in enumerate(y) if i<low]
>>> x
[(0, 3), (1, 4), (2, 5)] 
于 2013-06-25T14:53:46.460 に答える