タグ

Pythonとnumpyに関するohnabeのブックマーク (5)

  • NumPyから最高のパフォーマンスを得る方法 - keisukeのブログ

    2018/12/27 追記 この記事はかなり昔の情報が混じっている可能性があります。 元の記事にもいくつか修正が入っているようですが、この翻訳記事では特に修正を実施していません。ご注意ください。 正確な情報は元記事を参照してください。 記事 この記事の和訳です。 色々間違っている可能性があるのでご注意ください。 NumPyはPythonの科学計算ソフトフェア群の基礎となるものです。 NumPyはndarrayというベクトル計算に最適化された特別なデータ構造を提供します。 このオブジェクトは、科学数値計算の中の多くのアルゴリズムの核となっています。 特に計算がひとつの命令で多くのデータを操作する (SIMD) パラダイムに沿っている時、Numpy array (配列)を使うことでネイティブなPythonよりもかなりのパフォーマンスの高速化が達成できます。 しかし、最適化されていないNumPy

    NumPyから最高のパフォーマンスを得る方法 - keisukeのブログ
  • Pythonのfor文は遅い? - atsuoishimoto's diary

    bicycle1885.hatenablog.com こちらの記事を拝見していて、ちょっと気になったので注釈。 PythonやRを使っている人で、ある程度重い計算をする人達には半ば常識になっていることとして、いわゆる「for文を使ってはいけない。ベクトル化*1しろ。」という助言があります。 これは、PythonやRのようなインタープリター方式の処理系をもつ言語では、極めてfor文が遅いため、C言語やFortranで実装されたベクトル化計算を使うほうが速いという意味です。 昔からよくこういう言い方がよくされるが、当にPythonのfor文は遅いのだろうか。 聞くところによるとRのfor文はガチで遅いそうだが、Pythonの計算が遅いのはインタープリタ方式だからでも、for文が遅いからでもない。もちろん、Pythonはインタープリタなので遅いし、for文だって極めて遅い。しかし、これはPyt

    Pythonのfor文は遅い? - atsuoishimoto's diary
  • NumPyのブロードキャストのメリットと解説

    ブロードキャストとは ブロードキャストでは何が起こっているのか ルール1. ブロードキャスト対象の配列の中で、次元数(ndim)が異なるときはshapeの先頭に1を入れることで調整する ルール2. 計算処理に用いることのできる配列は、各次元の要素数が、最も大きい値に等しい、もしくはちょうど1となっているようなものである ルール3. 出力される配列のshapeは調整されたshapeのそれぞれの次元において最も要素数の多いものに合わせられる ルール4. 要素数が1となっている次元の軸については、値は全て同じものが繰り返される。 NumPyには、次元数や形状が揃っていない場合でも、プログラマが揃える処理を書かなくてもいいように簡単に計算を記述できるようになるブロードキャスト(Broadcasting)という機能が備わっています。 ブロードキャストは、NumPy配列が異なった次元・形状でも計算でき

    NumPyのブロードキャストのメリットと解説
  • PRMLのアルゴリズムをPython(ほぼNumpyだけ)で実装 - Qiita

    自分の勉強(機械学習のアルゴリズムやPythonの勉強)のためにPRMLに掲載されている手法をPythonで実装していきます。 原則としては、アルゴリズムの部分ではPythonの標準ライブラリに加えてNumpyだけ使用可能としていきます。scikit-learnやtensorflowなどの機械学習パッケージは使いません。matplotlibなどの結果を図示するパッケージはアルゴリズムの実装と関係がない限りは使っていきます。また、必要になったらscipyなどの他のパッケージもたまに使っていきます(すでにディガンマ関数などに使用)。ただし、最適化ツール(例えばscipy.optimizeやtensorflowの自動微分機能)などの実装を著しく簡単にするものは使いません。 基的には、章ごとに一つの手法を実装していきます。一通り終われば二周目に入るかもしれません。自分の勉強のためのものなので、な

    PRMLのアルゴリズムをPython(ほぼNumpyだけ)で実装 - Qiita
  • Pythonで機械学習を始めるなら知っておきたいNumPyの使い方 - 幸せになり隊

    最近流行りの機械学習ですが、実は一番大変なのはデータ処理だったりします。 NumPyはPythonで良く使われる数値計算ライブラリで、柔軟な配列操作が可能であり、データ処理も簡単にできるようになっています。Pandasやscikit-learnなど、機械学習でよく使われる有名なライブラリでも使われているので、NumPyを使いこなせるととても幸せになれます(多分)。 この記事では備忘録もかねてユースケース別にNumPyの使い方をまとめたいと思います。 基的な使い方はこちらのサイト(Pythonの数値計算ライブラリ NumPy入門)がとても参考になります。 はじめに ※numpyはnpという名前で使えるようにimportしておきます。 import numpy as np 目次 テストデータを生成する ある行、列だけを抽出する(インデックスで指定) 条件に合うデータだけ抽出する(条件式で指定

    Pythonで機械学習を始めるなら知っておきたいNumPyの使い方 - 幸せになり隊
  • 1