Numpy配列があり、インデックス番号に基づいていくつかの値を選択します。 Python3.6を使用しています
例えば:
np.array:
index#
[0]
[1] + + + + + + + + + + + + + + + + + + + +
[2] + I want to selct + + I don't want to select:
[3] + the indexs: + + [0]
[4] + [2] + + [10]
[5] + [4] + + Or any between
[6] + [6] + +
[7] + [8] + + + + + + + + + + +
[8] + + + + + + + + + +
[9]
[10]
上記の例でわかるように、インデックス番号を選択します。
if x = 2, 4, 8
これは、xに数字を指定するだけで機能しますが、x変数を作成したい場合は、たとえば次のようにしました。
if x:
for i in np.arange(x+2, x-last_index_number, x+2):
return whatever
ここで、x + 2 =最初に必要なインデックス(開始点)。 x-last_index_number =必要な最後のインデックス(最後のポイント)。 x + 2 =ステップ(xに2を追加するなどして次のインデックス番号に移動したいが、これは機能しなかった。
だから私の質問は、特定の順序で選択する番号を指定できますか?
[5][10][15][20][25][30][35]
or
[4][8][12][16][20]
Numpyスライスを使用すると、インデックスのリストを配列に入力できるため、必要な正確な値にスライスできます。
例えば:
import numpy as np
a = np.random.randn(10)
a[[2,4,6,8]]
これにより、2番目、4番目、6番目、および8番目の配列要素が返されます(pythonインデックスは0から始まることに注意してください)。リストにこれらの要素を入力し、そのリストを配列に入力するだけで、必要な要素を取得できます。例:
idx = list(range(2,10,2))
a[idx]
これも、目的の要素(インデックス2,4,6,8)を返します。
あなたのxは長さ20の配列です
x = np.arange(0,20)
戻り値
x [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
配列xの最初の2つのインデックスと最後の2つのインデックスを無視して、すべてのnth(ここでは偶数のインデックス)要素にアクセスします。
print(x[2:len(x)-1:2])
戻り値
[2 4 6 8]
同様に、残りの部分については、
print(x[5:len(x)-1:5])
print(x[4:len(x)-1:4])
戻り値
[ 5 10 15]
[ 4 8 12 16]