検索

今最も人気のある言語と言えば、Python を挙げなければなりません。ただし、Python は使いやすいですが、その速度は少し印象的です。 Python を C とほぼ同等の速度まで高速化する簡単な方法を使用するにはどうすればよいですか?

Pythonの実行速度を向上させる方法

今日はベビーナンバーバについてお話しましょう。読んで字のごとく、「numpy」か「numba」のどちらかです。 (推奨学習: Python ビデオ チュートリアル )

numba は、Python のジャストインタイム コンパイラであり、NumPy 配列と関数を使用するコードに最適です。ループも同様に。 Numba を使用する最も一般的な方法は、デコレーターのコレクションを使用する方法です。これを関数に適用して、Numba にコンパイルを指示できます。 Numba 装飾関数が呼び出されると、その関数は「ジャストインタイム」で実行できるようにマシンコードにコンパイルされ、コードのすべてまたは一部がネイティブのマシンコード速度で実行できるようになります。

コンピューティング プロジェクトに直面したときに、私たちが思いつく最も簡単な方法は、直接コーディングして、最終的に非常に長いプログラムを記述することです。その結果、一度何か問題が発生すると、問題を特定するのに多くの時間がかかることがよくあります。

この問題を解決する簡単な方法は、さまざまな関数を定義し、タスクを多くの小さな部分に分割することです。各関数はそれほど複雑ではなく、作成時にいつでも確認できるため、簡潔なメインプログラムで問題が発生した場合でも、問題の特定と解決が容易です。オブジェクト指向プログラミングの考え方は関数に基づいています。

関数を作成した後、デコレータを使用して関数をより強力にすることもできます。デコレータ自体は関数ですが、関数の関数であり、関数の機能を高めることが目的です。たとえば、まず現在時刻を出力する関数を定義し、次に時刻形式を指定する関数を定義し、後者の関数を前の関数に適用するのがデコレータであり、現在時刻を特定の形式で出力するために使用されます。

>Numba の利点

1. シンプルですが、多くの場合、たった 1 行のコードで驚くべきことが起こります;

2. これはループに奇跡的な効果をもたらし、多くの場合、科学で使用される Python の計算速度を制限するのはループです;

3. numpy、cmath などの一般的に使用される科学計算パッケージと互換性があります;

4. ufunc を作成できます;

5. 精度を確保するために、精度が自動的に調整されます。

numbaの使い方

上記で挙げたnumbaのメリットを一つずつ紹介していきます。最初に numba をインポートします

import numba as nb

コードを 1 行追加するだけで高速化でき、ループに奇跡的な効果があります

numba の組み込み関数はデコレータであるため、必要なのは@nb.jit() だけで簡単に始めることができます。例として合計関数を取り上げてみましょう。

# 用numba加速的求和函数@nb.jit()def nb_sum(a):
    Sum = 0
    for i in range(len(a)):
        Sum += a[i]
    return Sum# 没用numba加速的求和函数def py_sum(a):
    Sum = 0
    for i in range(len(a)):
        Sum += a[i]
    return Sum

速度をテストします。

import numpy as np
a = np.linspace(0,100,100) # 创建一个长度为100的数组

%timeit np.sum(a) # numpy自带的求和函数
%timeit sum(a) # python自带的求和函数
%timeit nb_sum(a) # numba加速的求和函数
%timeit py_sum(a) # 没加速的求和函数

Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。

以上がPythonの実行速度を向上させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境