reduce() 関数はパラメータシーケンス内の要素を蓄積します。次の記事では主に Python でのreduce() 関数の使い方をサンプルコードを通して詳しく紹介しています。または、それが必要な友人は以下を参照してください。
前書き
この記事では主に Python でのreduce() 関数の使用法に関する関連コンテンツを紹介し、参考と学習のために共有します。以下ではあまり言うことはありません。詳細な紹介:
reduce() 関数はライブラリ functools にあります。これを使用したい場合は、このライブラリからインポートする必要があります。 reduce 関数は、map 関数とは異なり、並列演算です。reduce 関数は、コンピュータのアルゴリズムでは、複数の条件を単純化した結果を組み合わせた演算です。簡略化する。たとえば、画像が猫であるかどうかを識別するには、多くのピクセルから「はい」または「いいえ」の判断を抽出する必要があります。何百万ものピクセルがあるかもしれませんが、得られる結果は 1 つだけです。 GOOGLE の大規模クラスターでは、この考え方を使用して、以前の並列処理操作のマップを呼び出し、並列処理後の結果を単純化して分類する必要があります。この単純化と分類のプロセスはリデュースと呼ばれます。 Reduce は 1 つのホスト上でのみ動作し、分散処理できないため、Reduce プロセスは結果をマップします。これは、結果が非常に単純で、データ量が大幅に削減され、処理が非常に高速であることを意味します。
したがって、mapreduce プロセスは分析と帰納のプロセスと呼ぶことができます。
以下のreduce()の例を見てください:
#python 3. 6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # from functools import reduce result = reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) print(result)
出力結果:
15
この例では、計算プロセスは実際には次のようになります:
( (((1+2)+3)+4)+5)
別の階乗例を見てください:
#python 3. 6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51749579 # from functools import reduce n = 3 print(reduce(lambda x, y: x * y, range(1, n + 1))) # 6
出力結果:
6
関数と同様に、reduce 関数はパラメーター シーケンス内の要素を蓄積します。
reduce 関数の定義:
reduce(function, sequence[, initial]) -> value
関数パラメータは、シーケンスから順番に要素を取得し、最後の結果を使用して関数を再度呼び出します。パラメータとして関数を呼び出します。
関数が初めて呼び出されるとき、初期パラメーターが指定されている場合、関数はシーケンスの最初の要素とパラメーターとしての初期値を使用して呼び出されます。それ以外の場合、関数はシーケンスの最初の 2 つの要素を使用して呼び出されます。シーケンスをパラメータとして指定します。
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)
結果は21(((((1+2)+3)+4)+5)+6) )
reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])
結果は20です
まとめ
以上がPythonのreduce()関数の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。