問題タブ [timeit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - numpy.all が python 標準の all よりもずっと遅いのはなぜですか?
ローカル クラスターで順位相関計算を行うスクリプトを作成しました。X
計算には、長さ 5000 ~ 10000 の2 つの配列を調べてY
、数量を抽出することが含まれます。
何千回も計算します(シャッフルするためX
/Y
他のものの中で)。
私たちのクラスターの 1 つは python2.4 を実行していたので、all
s をnumpy.all
s に変更しました。しかし、私が 5 ~ 6 時間かかると見積もった計算は、24 時間以上のマークに達していました。これにより、私は調査するようになりました。
サンプルコードは次のとおりです。
numpy.all
これを計算するのに 50 倍の時間がかかる理由は何ですか? numpy.array
オーバーヘッドですか?
編集:私の元の配列はnumpy.array
、ここにあるような s ではありません ( np.random.rand
)。行を変更する必要があるまで、私は numpy をまったく使用していませんでしたall
。ただし、ループを次のようなものに置き換えました
これにより、初期オーバーヘッドの実行と、これらのループの約 3000 の計算が 60% 程度高速化されます。ありがとう!numpy を使用して最適化する方法をさらに探します。
python - Python コマンド ライン引数のセミコロン ループ エラー
私は試していたpython -mtimeit
ので、入れpython -mtimeit "n = 0; while n < 10: pass"
ました 無効な構文エラーが表示されました。セミコロンと for ループと同じです。
ただし、セミコロンとループを個別に試すと。どちらもうまくいきました。
これはなぜですか。また、while ループを timeit でテストするにはどうすればよいですか? どうもありがとうございました!
python - Python: timeit.timeit() を使用して変数をインポートする方法はありますか?
配列を取り、すべての要素を 0 に変更する関数があるとします。
この関数をランダムな配列で実行するのにかかる時間をテストしたいのですが、timeit テストの外側で生成したいと考えています。つまり、配列の生成にかかる時間を時間に含めたくありません。
最初に乱数配列を変数 x に格納し、次のようにします。
しかし、これは私にエラーを与えます: NameError: グローバル名 'x' は定義されていません
これどうやってするの?
python - timeit.timeit を使用しようとしています
2つのコードの実行時間を測定したいのですが、timeitのpythonドキュメントを調べてみましたが、よくわかりませんでした。誰かがより初心者レベルの語彙で説明できますか?
python - 関数のタイミングを計るときに timeit を使用する方法
私はPythonについてほとんど何も知らないが、3つの異なる言語でプログラムを書かなければならないと言うことから始めましょう(すでにJavaとC ++で行われています).
メソッドの実行時間を特定の回数測定し、全体の実行時間にかかった時間を出力できるようにする必要があります。
いえ
関数があります(A
既知のサイズの配列です)。10回実行されるperformSearch(arrayTest)
arrayTest
A
A
実行前から実行後までの時間を計る必要がありますA
。
python - Python: 一意の値の大きな配列を作成するときのメモリ エラー
私はpythonを学んでいますが、timeitを使用して長さ10 ^ 8のランダム入力のセットで実行時間を評価するように求める問題に遭遇しました。timeit の使い方は知っていますが、サイズ 10^8 の配列を作成するのに問題があります。以下に、私の方法を示します。
配列を取得するために、私はこれをやってみました:
しかし、メモリエラーが発生しました。何か案は?
python - プログラムから Python の「timeit」を使用しますが、コマンド ラインと同じように機能しますか?
たとえば、ドキュメントには次のように記載されています。
ただし、timeit は、コマンドライン インターフェイスが使用されている場合にのみ、繰り返し回数を自動的に決定することに注意してください。
Pythonスクリプト内から呼び出して、繰り返し回数を自動的に決定し、最短の回数だけを返す方法はありますか?
python - インタープリターとコマンドラインから timeit を使用する際のタイミングの違い
通訳から、私は得る:
コマンドラインから、私は得る:
2 つのケースでタイミングの大きさにこの違いがあるのはなぜですか?
python - ipython での timeit の使用に関する問題
私はすぐに ipython で 2 つの関数の時間を計ろうとしm1()
、 m2()
2 つの異なる実装で同じタスクを実行しました。
結果: 最初の実装はほぼ 2 倍高速です。ここまでは順調ですね。
好奇心から、for
上記のループの範囲を変更しましたが、出力の意味がわかりません。
ここで for ループは正確に何をしているのでしょうか? また、範囲の値を大きくするとループ回数の値が減少するのはなぜですか?
PS:これを参考にしていました。また、私の質問を正確に伝えていない場合は、タイトルをより適切なものに編集してください。