1. ホーム
  2. python

[解決済み] ヘビーサイドのステップ関数は存在するか?

2022-02-16 16:38:21

質問

はあるのでしょうか? ヘビーサイド のような Python の関数です。 heaviside ?

探すのに苦労しています。

どのように解決するのですか?

numpyのバージョン1.13.0以降を使用している場合、以下のようになります。 numpy.heaviside :

In [61]: x
Out[61]: array([-2. , -1.5, -1. , -0.5,  0. ,  0.5,  1. ,  1.5,  2. ])

In [62]: np.heaviside(x, 0.5)
Out[62]: array([ 0. ,  0. ,  0. ,  0. ,  0.5,  1. ,  1. ,  1. ,  1. ])

古いバージョンのnumpyでは、次のように実装することができます。 0.5 * (numpy.sign(x) + 1)

In [65]: 0.5 * (numpy.sign(x) + 1)
Out[65]: array([ 0. ,  0. ,  0. ,  0. ,  0.5,  1. ,  1. ,  1. ,  1. ])