array([ 3.497 , 3.0935 , 3.3625 , 3.56425, 3.497 , 4.10225,
2.75725, 3.766 , 2.959 , 3.9005 ])
上記のnumpy配列では、下位5つのパーセンタイル値に100の値が割り当てられ、その他の値には1が割り当てられる新しい配列を計算します。 1の値。ここで使用できるヘーブサイドに類似した機能はありますか?numpy配列の下端と上端の5パーセンタイルに値を割り当てる
array([ 3.497 , 3.0935 , 3.3625 , 3.56425, 3.497 , 4.10225,
2.75725, 3.766 , 2.959 , 3.9005 ])
上記のnumpy配列では、下位5つのパーセンタイル値に100の値が割り当てられ、その他の値には1が割り当てられる新しい配列を計算します。 1の値。ここで使用できるヘーブサイドに類似した機能はありますか?numpy配列の下端と上端の5パーセンタイルに値を割り当てる
どの値が間に入ると、次いでnp.where
と条件付きアレイを作成する場合1
を与えるnp.searchsorted
を有する2つの閾値と、配列内の値を比較し、まずnp.percentile
で5および95パーセンタイルを算出について:
a = np.array([ 3.497 , 3.0935 , 3.3625 , 3.56425, 3.497 , 4.10225,
2.75725, 3.766 , 2.959 , 3.9005 ])
np.where(np.searchsorted(np.percentile(a, [5, 95]), a) == 1, 1, 100)
# array([ 1, 1, 1, 1, 1, 100, 100, 1, 1, 1])
これはnp.heavenside
機能を使用していないので、私はそれはあなたが探しているものだとわからないんだけど、それは動作します:
ret_arr = (99*np.logical_or((array<np.percentile(a,5)),(array>np.percentile(a,95))))+1
これは、ボトム・アンド・トップ・パーセンタイルの間の比較を使用し、次にボレーン・アレイに対して数学演算を実行できるという事実を使用します。この場合
:
In[73]: ret_arr
Out[73]: array([ 1, 1, 1, 1, 1, 100, 100, 1, 1, 1])
編集:使用またはその代わりと