タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

scipy.sparseに関するshikimihuaweiのブックマーク (6)

  • SciPyの疎行列を利用して、膨大な量のデータ前処理を加速させる - Qiita

    これなに? 広告分野での機械学習システムをpythonScalaで開発している長谷川といいます。 Web広告では一日に膨大な量のリクエストを受けるとともに、その特徴量の種類も非常に豊富なため、どうしても使用メモリ量や実行時間がボトルネックになることが多々あります。 そのため、塵も積もればの精神で、日々細かい改善を繰り返しながら、パフォーマンスを改善しているのですが、その際にscipy.sparseの性質を利用することで、実行時間とメモリ使用量を改善できたことがあったので、その経験を元にしていくつか例を紹介します。 scipy.sparseとは? ざっくりいうと、疎である行列のメモリの持ち方を効率化するためのモジュールです。持ち方は、行いたい処理の性質に応じて、行指向のcsr形式や列指向csc形式など、多々あるのですが、今回はcoo形式(座標形式)の性質を利用して、処理を効率化します。 C

    SciPyの疎行列を利用して、膨大な量のデータ前処理を加速させる - Qiita
  • SciPyでの疎行列の扱い、保存など - 未来は僕以外の手の中

    Python、特にSciPyは日語でのドキュメントが少ないので、メモがてら記述。 単語文書行列などでは大規模疎行列になることがよくある。 そこで格納方法の工夫などを行っていく必要がある。 最もスタンダードな方法としては圧縮行格納方式などがある。 基的に疎行列の要素は0なので、非零の要素の位置だけ覚えておこうという発想。 もちろん(?)SciPyには疎行列を扱うモジュールsparseが用意されている。 lil_matrixにて疎行列を生成。引数には行列の大きさ(m, n)を指定。 from numpy import * from scipy import io, sparse A = sparse.lil_matrix((3, 3)) # 疎行列生成 A[0,1] = 3 A[1,0] = 2 A[2,2] = 5 【Aの型、中身】 3×3行列であること、および非零の位置のみ格納されてい

    SciPyでの疎行列の扱い、保存など - 未来は僕以外の手の中
  • scipy.sparseで疎行列入門 - Qiita

    この記事は古川研究室 Advent Calendar 22日目の記事です. 自分は古川研究室のOBなのですが,学生さんよりお誘いいただいて参加することになりました.よろしくお願いいたします. はじめに 今回はscipy.sparseによる実装を併記しつつ,疎行列とその表現形式について説明したいと思います. 「numpyにはある程度慣れてきたけど疎行列関連はまだ手を出してなくて…どういうものなのか少しだけ知りたい!」という人向けの記事になります. 記事では各表現形式がどのような値を用いて疎行列を表現しているのかについて着目して説明し,最後に簡単な実験としてメモリサイズと計算速度の比較を行います. scipy.sparseについて記事よりも詳しく知りたい場合はこちらをご参照ください. https://docs.scipy.org/doc/scipy/reference/sparse.htm

    scipy.sparseで疎行列入門 - Qiita
  • Pythonで疎行列を保存する方法 - 音楽プログラミングの超入門(仮)

    Python のライブラリである SciPy には、疎行列を扱うためのパッケージ scipy.sparse が入っていますが、これに pickle とかが対応してないっぽいです。なのでこれをファイルとして保存する/読み出す方法を書いときます。 scipy.io にある mmwrite, mmread 関数を使えば保存/読み出しができるようです。 Input and output (scipy.io) — SciPy v0.13.0 Reference Guide 使い方 関数の使い方はリファレンスを読めば分かるけど、一応、例を載せておきます。 # -*- coding: utf-8 -*- from scipy.io import mmwrite, mmread from scipy.sparse import csr_matrix def test(): ### 何か適当な疎行列 arr

    Pythonで疎行列を保存する方法 - 音楽プログラミングの超入門(仮)
  • Python, SciPy(scipy.sparse)で疎行列を生成・変換 | note.nkmk.me

    SciPy(scipy.sparse)を使うと疎行列(スパース行列)を効率的に扱うことができる。PythonのリストやNumPy配列numpy.ndarrayの密行列(非スパース行列)を疎行列のクラスに変換することも可能。 疎行列(スパース行列)と密行列(非スパース行列) SciPy(scipy.sparse)の疎行列の種類 CSR: scipy.sparse.csr_matrix CSC: scipy.sparse.csc_matrix COO: scipy.sparse.coo_matrix LIL: scipy.sparse.lil_matrix SciPyで疎行列クラスを生成・変換 リスト、numpy.ndarrayと相互変換 値、行、列のリストから生成 空の疎行列を生成、要素を追加・削除 他の疎行列から生成・変換 疎行列生成の処理時間比較 scipy.sparseとnumpy.n

    Python, SciPy(scipy.sparse)で疎行列を生成・変換 | note.nkmk.me
  • scipy.sparse行列の要素・行・列・部分行列の値を取得・更新 | note.nkmk.me

    SciPyのscipy.sparse行列(疎行列)はNumPy配列ndarrayと同様にインデックス[]やスライス[:]で要素や行、列、部分行列の値を取得したり更新(変更)したりすることができる。 Sparse matrices (scipy.sparse) — SciPy v1.3.0 Reference Guide ここでは以下の内容について説明する。 scipy.sparse行列の種類(クラス)による違い 行・列を取得: getrow(), getcol() インデックスで要素を取得・更新 スライスで行・列・部分行列を取得・更新 処理速度の比較 scipy.sparseの基については以下の記事を参照。 関連記事: Python, SciPy(scipy.sparse)で疎行列を生成・変換 以下の説明内容およびサンプルコードはSciPy1.3.1のもの。バージョンが違うと異なる場合が

    scipy.sparse行列の要素・行・列・部分行列の値を取得・更新 | note.nkmk.me
  • 1