Pythonのreduce()関数の例

黄舟
リリース: 2017-10-03 05:44:49
オリジナル
1710 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート