keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

【numpy】viewとcopy

配列のviewとは、もとの配列と同じデータを指している。 一方、copyは、もとの配列と同じデータのコピーを指している。

つまり、配列aviewであるvが存在するとして、vの要素を書き換えるとaの値も同時に書き換わる。 しかし、acopyであるcの要素を書き換えてもaの値は影響を受けない。

例えば、

続きを読む

NumPyから最高のパフォーマンスを得る方法

2018/12/27 追記

この記事はかなり昔の情報が混じっている可能性があります。 元の記事にもいくつか修正が入っているようですが、この翻訳記事では特に修正を実施していません。ご注意ください。 正確な情報は元記事を参照してください。

記事

この記事の和訳です。
色々間違っている可能性があるのでご注意ください。


NumPyPythonの科学計算ソフトフェア群の基礎となるものです。 NumPyはndarrayというベクトル計算に最適化された特別なデータ構造を提供します。 このオブジェクトは、科学数値計算の中の多くのアルゴリズムの核となっています。

特に計算がひとつの命令で多くのデータを操作する (SIMD) パラダイムに沿っている時、Numpy array (配列)を使うことでネイティブなPythonよりもかなりのパフォーマンスの高速化が達成できます。 しかし、最適化されていないNumPyのコードを何気なく書いてしまうこともありえます。

この記事では、あなたが最適化されたNumPyのコードを書くことを助けるいくつかのトリックを紹介します。 時間とメモリを節約するために、不必要な配列のコピーを避ける方法から見ていきましょう。 そのために、NumPyの内部に分け入る必要があるでしょう。

続きを読む

【Python】 progressbar

進捗を示すためにshell上にプログレスバーを表示したいことがよくあります.

50% (200 of 400) |############            |

こんなやつです.

Pythonでも,重い処理をforループで回すときに欲しくなります. 当然同じことを考える人がいるので,すでにパッケージがあります.

python progressbar」で検索して一番上に出てくるパッケージ(progressbar)はpython3に対応してない上,開発がだいぶ前に止まっているので,今回は別のパッケージ(progressbar2)を使います.

続きを読む

WindowsでanacondaのEnvironment管理をする

参考:How to activate an Anaconda environment - Stack Overflow

何をしたいの?

AnacondaのEnvironment管理に関する公式のドキュメントが、特にWindows環境においてはあまり充実しているとはいえないので、調べた結果を(自分用のメモも兼ねて)和訳して残したいです。 MacOS/Linux系のドキュメントは充分豊富にある上に、Windowsで頻発しがちな問題も起こらないので、Windows環境での設定について書きます。

続きを読む