April 2023
Intermediate to advanced
452 pages
7h 21m
Japanese
NumPyはPythonだけで書くより数値計算が得意なのか?どのような問題であろうと、コンピュータで解決しようとすれば、どこかでベクトルの計算が絡むものです。ベクトルの計算は、コンピュータの動作やハードウェアのレベルまで考慮してプログラムの実行時間を短縮するのに欠かせません。コンピュータが知っていることは数値演算だけです。そのため、一度に複数の計算をする方法がわかれば、プログラムを高速化するのに役立ちます。
本章では、拡散方程式を解くという比較的単純な数学的問題をテーマに、CPUレベルでの動作を理解することで、ベクトル計算の複雑さを明らかにします。コードの変化がCPUに与える影響を理解し、効率よく精査する方法を知ることで、他の問題も理解できるようになります。
まず、扱う問題を紹介し、Pythonだけで解いてみます。発生するメモリの問題をPythonだけで解決したら、NumPyを導入し、コードが高速になる仕組みと理由を示します。次に、アルゴリズムを変更して、NumPyで問題を解決できるようにします。ここではNumPyの持つ汎用性の一部を除去することで、コードをさらに高速化できることを示します。そのあと、一連の作業を支援する外部モジュールを導入し、プロファイリングせずに最適化することの危険性を述べます。
最後に、Pandasを紹介します。Pandasは、NumPyをベースに、同種のデータの列を取り、違う型のテーブルに格納します。Pandasは純粋な ...
Read now
Unlock full access