タグ

ブックマーク / yukara-13.hatenablog.com (2)

  • 【Python】SciPyの特異値分解ともうちょっと速い特異値分解【SVD】 - 音楽プログラミングの超入門(仮)

    photo by Jared Tarbell 特異値分解とは? 特異値分解 - Wikipedia SciPyの特異値分解 SciPyには特異値分解のための関数が2種類入っています。 scipy.linalg.svd scipy.sparse.linalg.svds 前者(svd)が一般的な特異値分解、後者(svds)がスパース行列に対する特異値分解の関数となっています。しかし、おそらく svds は別の場面で使う場合が多いのではないでしょうか。 svd では全ての特異値を計算するのに対し、svds では上位 k 個の特異値のみを計算させるオプションが存在します。当然、k が小さいほど計算は速く終わるため、スパース行列でなくても、上位の特異値のみが必要な場合は svds を使ったほうが圧倒的に計算が速いことが多いです。 PROPACK SVD のスピードについて調べているときに下のような記

    【Python】SciPyの特異値分解ともうちょっと速い特異値分解【SVD】 - 音楽プログラミングの超入門(仮)
    karumado
    karumado 2014/11/20
  • PythonでWAVファイルを読み込む - 音楽プログラミングの超入門(仮)

    音声信号処理を行う場合、大抵、数値列をWAVファイルから読み込むことになると思います。Python でそれを行う方法を2つ紹介します。 waveモジュールを使うwave モジュールはその名の通り、WAVファイルを扱うためのモジュールです。WAVファイルの読み込みはこんな感じにします。 # -*- coding: utf-8 -*- import wave from scipy import fromstring, int16 wavfile = "./test.wav" # WAVファイルを開く wr = wave.open(wavfile, "rb") # WAVファイルの情報を表示(別にいらん) print "Channel num : ", wr.getnchannels() print "Sample size : ", wr.getsampwidth() print "Sampl

    PythonでWAVファイルを読み込む - 音楽プログラミングの超入門(仮)
    karumado
    karumado 2014/10/27
  • 1