NumPy 適用関数

Numpy Shi Yong Guan Shu



NumPy として知られる Python が提供する組み込みライブラリを使用すると、多次元配列を構築し、それらを変更し、それらに対してさまざまな算術計算を実行できます。 Apply 関数も NumPy パッケージで提供されています。 apply 関数の典型的な使用例は、配列をスライスし、リストの各要素に対していくつかの操作を実行するシナリオに似ています。たとえば、行の各項目を四角形にしたい場合です。もちろん、Python では for ループが遅いことがわかっているので、可能であれば回避したいと考えています。データ フレームの各行または列に対して同じ操作を実行する場合は、「適用」関数を使用できます。つまり、for ループを記述する必要なく、for ループでやりたいことを実行します。

任意の関数を配列に適用するには、条件に応じて 2 つの方法があります。配列の各要素に 1 つずつ関数を適用するときに役立つ「軸に適用」関数を適用できます。これは、n 次元配列に役立ちます。 2 つ目の方法は、1 次元配列に適用される「軸に沿って適用」です。

構文:

方法 1: 軸に沿って適用する

うるさい。 軸に沿って適用 ( 1d_関数 到着 *引数 **クォーグ )

構文には、5 つの引数を渡す「numpy.apply」関数があります。 「1d_function」である最初の 1 つの引数は、必要な 1 次元配列で動作します。 2番目の引数である「軸」は、配列をスライスしてその関数を適用する軸です。 3 番目のパラメーターは、関数を適用する特定の配列である「arr」です。 「*args」と「*kwargs」は、追加する必要のない追加の引数です。







例 1:

「適用」メソッドの理解を深めるために、適用メソッドの動作を確認する例を実行します。この例では、「apply_along_Axis」関数を実行します。最初のステップに進みましょう。まず、NumPy ライブラリを np として含めます。次に、「8、1、7、4、3、9、5、2、および 6」の整数値を持つ 3×3 行列を保持する「arr」という名前の配列を作成します。次の行では、apply_along_Axis 関数の結果を保持する役割を担う「array」という名前の変数を作成します。



その関数には、3 つの引数を渡します。最初のものは、配列に適用したい関数です。私たちの場合は、配列をソートしたいので、ソートされた関数です。次に、2 番目の引数「1」を渡します。これは、配列を axis=1 に沿ってスライスすることを意味します。最後に、この場合はソートされる配列を渡します。コードの最後で、両方の配列 (元の配列と結果の配列) を単純に出力します。これらは、print() ステートメントを使用して表示されます。



輸入 でこぼこ なので 例えば

到着 = 例えば 配列 ( [ [ 8 1 7 ] [ 4 3 9 ] [ 5 2 6 ] ] )

配列 = 例えば 軸に沿って適用 ( ソートされた 1 到着 )

印刷する ( 「元の配列は:」 到着 )

印刷する ( 「ソートされた配列は:」 配列 )





次の出力でわかるように、両方の配列を表示しました。最初のものでは、値は行列の各行にランダムに配置されます。しかし、2 番目のものでは、ソートされた配列を見ることができます。軸「1」を渡したので、配列全体がソートされていませんが、表示されているように行ごとにソートされています。各行がソートされます。指定された配列の最初の行は「8、1、および 7」です。並べ替えられた配列では、最初の行は「1、7、および 8」です。これと同じように、各行がソートされます。



方法 2: 軸全体に適用する

うるさい。 apply_over_axes ( 機能 a )

指定された構文には、指定された軸に関数を適用する責任がある numpy.apply_over_axis 関数があります。 apply_over_axis 関数内で、3 つの引数を渡します。最初のものは、実行される機能です。 2 つ目は配列自体です。最後は関数を適用したい軸です。

例 2:

次の例では、3 次元配列の合計を計算する「apply」関数の 2 番目のメソッドを実行します。覚えておくべきことの 1 つは、2 つの配列の合計は、配列全体を計算することを意味しないということです。一部の配列では、行ごとの合計を計算します。これは、行を追加して、それらから単一の要素を取得することを意味します。

コードに進みましょう。最初に NumPy パッケージをインポートしてから、3 次元配列を保持する変数を作成します。この場合、変数は「arr」です。次の行では、apply_over_axis 関数の結果の配列を保持する別の変数を作成します。 apply_over_Axis 関数を変数「arr」に 3 つの引数で割り当てます。最初の引数は、np.sum である合計を計算する NumPy の組み込み関数です。 2 番目のパラメーターは、配列自体です。 3 番目の引数は、関数が適用される軸です。この場合、「[0, 2]」軸があります。コードの最後で、print() ステートメントを使用して両方の配列を実行します。

輸入 でこぼこ なので 例えば

到着 = 例えば 配列 ( [ [ [ 6 12 2 ] [ 2 9 6 ] [ 18 0 10 ] ]

[ [ 12 7 14 ] [ 2 17 18 ] [ 0 21 8 ] ] ] )

配列 = 例えば apply_over_axes ( 例えば 到着 [ 0 2 ] )

印刷する ( 「元の配列は:」 到着 )

印刷する ( 「配列の合計は:」 配列 )

次の図に示すように、apply_over_axis 関数を使用して 3 次元配列の一部を計算しました。最初に表示される配列は「2, 3, 3」の形状を持つ元の配列で、2 番目の配列は行の合計です。 1 行目の合計は「53」、2 行目は「54」、最後の行は「57」です。

結論

この記事では、適用関数が NumPy でどのように使用されるか、および軸に沿って、または軸を超えて配列にさまざまな関数を適用する方法について説明しました。 NumPy が提供する「適用」メソッドを使用してそれらをスライスすることにより、目的の行または列に任意の関数を簡単に適用できます。配列全体に適用する必要がない場合、これは効率的な方法です。この投稿が apply メソッドの利用方法を学ぶのに役立つことを願っています。