問題タブ [scipy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonを使用してwavファイルを読む最も簡単な方法は何ですか[概要]?
Python を使用して wav ファイルにアクセスし、そのコンテンツを分析できる形式 (配列としましょう) に書き込みたいと考えています。
- 「audiolab」はそれに適したツールだと聞きました(numpy配列をwavに、またはその逆に変換します)。
- "audiolab" をインストールしましたが、numpy のバージョンに問題がありました ("from numpy.testing import Tester" ができませんでした)。私は1.1.1を持っていました。numpy のバージョン。
numpy (1.4.0) に新しいバージョンをインストールしました。しかし、その後、新しい一連のエラーが発生しました。
トレースバック (最新の呼び出しが最後): ファイル "test.py"、7 行目、インポート scikits.audiolab ファイル "/usr/lib/python2.5/site-packages/scikits/audiolab/ init .py"、25 行目、 in from pysndfile import formatinfo, sndfile File "/usr/lib/python2.5/site-packages/scikits/audiolab/pysndfile/ init .py", line 1, in from from _sndfile import Sndfile, Format, available_file_formats, available_encodings File "numpy .pxd"、30 行目、scikits.audiolab.pysndfile._sndfile (scikits/audiolab/pysndfile/_sndfile.c:9632) の ValueError: numpy.dtype が正しい型オブジェクトではないようです
私は audiolab を使用することをあきらめ、「wave」パッケージを使用して wav ファイルを読み込むことができると考えました。私はそれについて質問しましたが、人々は代わりに scipy を使用することを勧めました。OK、私は scipy に集中することに決めました (私は 0.6.0. バージョンを持っています)。
しかし、私が次のことをしようとしたとき:
from scipy.io import wavfile
x = wavfile.read('/usr/share/sounds/purple/receive.wav')
私は以下を取得します:
- だから、私はscipyの使用をあきらめました。waveパッケージだけでも使えますか?私はあまり必要ありません。人間が読める形式のwavファイルのコンテンツが必要なだけで、それをどうするかを考えます。
python - Seasonal adjustment in Python and Scipy
I am looking to seasonally adjust monthly data, using Python. As you can see from these series: www.emconfidential.com, there is a high seasonal component to the data. I would like to adjust for this so that I can better guage if the series trend is rising or falling. Anybody know how to do this easily using scipy or other Python library?
numpy - Numpy: 1 次元のインデックスを多次元に変換する
多くの配列メソッドは、配列が多次元であるにもかかわらず、単一のインデックスを返します。例えば:
2 次元の場合、最大要素の行列インデックスを見つけるのは簡単です。
しかし、より多くの次元では、面倒になる可能性があります. Numpy/Scipy には、1 つの (折りたたまれた) 次元のインデックスを指定して、複数の次元のインデックスを返す簡単な方法がありますか? ありがとう。
python - Python Webホスティング:Numpy、Matplotlib、Scientific Computing
私はNumpy/Scipy/Matplotlibで科学ソフトウェアを書いています。自宅のコンピューターでアプリケーションを開発したので、今は簡単なWebアプリケーションを作成することに興味があります。例:ユーザーが画像または音声ファイルをアップロードし、私のプログラムがNumpy / Scipyを使用してそれを処理し、出力がMatplotlibを使用してブラウザーに表示されるか、ユーザーが処理済みファイルをダウンロードできる可能性があります。
Python 2.4.3がインストールされているホスティングの料金はすでに支払っていますが、Numpy/Scipyはありません。コマンドラインからのシェルアクセスもありません。FTPをドラッグアンドドロップするだけです。かなり制限されていますが、単純なPython/CGIスクリプトを機能させることができます。
驚いたことに、Web検索では、これらの機能がすでに組み込まれているWebホスティングに適したオプションがいくつか見つかりました。(間違っている場合はご案内ください。)Google App Engineについて学習していますが、まだ完全には理解していません。ツールと制限。ウェブが私に言ったことは、他の人も同様の懸念を持っているということです。
解決策を期待して、私はこれらの簡単な質問を素晴らしいSOコミュニティに尋ねると思いました。
すでにホストされているスペースにnumpy(またはサードパーティのパッケージ/ライブラリ)をインストールする簡単な方法はありますか?ホストされているスペースのPythonパスを知っており、自宅のコンピューターの関連するPython/Numpyディレクトリを知っています。単にファイルをコピーして機能させることはできますか?ローカルシステムとリモートシステムの両方がUbuntuを実行します。
Numpy / Matplotlibがインストールされている(無料または有料の)ホスティングサイトはありますか?インストールされていない場合は、インストールする可能性がありますか?どんなに単純であっても、動作するアプリケーションで参照できる文書化されたサイトはありますか?
Google App Engineは何らかの形で私を助けてくれますか?それとも完全に何か他のもののためですか?あなたや他の人がPython/Numpyで科学アプリケーションを書くためにそれを使用しましたか?もしそうなら、あなたはそれらを参照できますか?
ご協力ありがとうございました。
編集:以下の有用な回答の後、私はSlicehostで$ 20プランを購入しました、そして私は今のところそれが大好きです!(私は最初にAmazon EC2を試しました。私は愚かであるに違いありませんが、それを機能させることができませんでした。)ApacheでUbuntuサーバーをセットアップするのにほんの数時間しかかかりませんでした(そして私はApache初心者です)。これにより、Pythonに加えてはるかに多くのことを実行できます。現在、バージョン管理用の独自のリモートリポジトリもあります。再度、感謝します!
編集2:ほぼ2年後、私はLinodeとEC2を(再び)試しました。Linodeは素晴らしいです。今回はEC2の方が簡単に見えました。おそらく、エクスペリエンスが追加されただけなのか、AmazonがAWS管理コンソールに加えた改善なのかもしれません。Numpy / Scipy / Matplotlib / Audiolabに興味のある方のために、EC2インスタンスを起動するたびにUbuntuのチートシートを示します。
python - スティッフな ODE を Python と統合する
スティッフな ODE を Python に統合する優れたライブラリを探しています。問題は、scipy の odeint が良い解決策を提供してくれることもありますが、初期条件を少し変更すると、落ちてあきらめてしまうことです。同じ問題は、MATLAB のスティッフ ソルバー (ode15s および ode23s) によって非常にうまく解決されますが、(Python からでも) 使用できません。これは、MATLAB C API の Python バインディングがコールバックを実装しておらず、関数を渡す必要があるためです。 ODE ソルバーに)。私は PyGSL を試していますが、恐ろしく複雑です。どんな提案でも大歓迎です。
編集: PyGSL で私が抱えている特定の問題は、正しいステップ関数を選択することです。それらのいくつかはありますが、ode15s または ode23s に直接類似するものはありません (意味がある場合は bdf 式と変更された Rosenbrock)。では、スティッフなシステムに対して選択する適切なステップ関数は何でしょうか? このシステムを定常状態に確実に到達させるために非常に長い時間解かなければならず、GSL ソルバーは非常に小さい時間ステップまたは大きすぎる時間ステップを選択します。
python - numpy 配列のリストから numpy 配列を作成する Pythonic の方法
ループで 1 次元の numpy 配列のリストを生成し、後でこのリストを 2d numpy 配列に変換します。アイテムの数を事前に知っていれば、2次元のnumpy配列を事前に割り当てていましたが、そうではないため、すべてをリストに入れました。
モックアップは以下です。
私の質問は次のとおりです。
それらをリストに入れてからnumpy.arrayを作成するよりも、連続した数値データ(私の場合はnumpy配列)を収集するタスクについて(パフォーマンス的に)より良い方法はありますか(私は新しいobjを作成してコピーしていますデータ)?十分にテストされたモジュールで利用可能な「拡張可能な」マトリックスデータ構造はありますか?
私の 2D マトリックスの典型的なサイズは、100x10 から 5000x10 の浮動小数点数です。
編集:この例ではマップを使用していますが、実際のアプリケーションでは for ループがあります
python - scipy.io.savematを使用してPython変数を.matファイルに保存する
これが私のPythonコードです。
しかし、エラーメッセージが表示されます
問題を理解するのを手伝ってくれてありがとう。
Vipin TS
python - ポイントをビンに割り当てる
数値を特定の範囲にビン化する良い方法は何ですか? たとえば、値のリストがあり、それらを範囲ごとに N 個のビンにビン化したいとします。今、私は次のようなことをしています:
ここで、min_index は最小値のインデックスを返します。アイデアは、どのビンとの差が最も小さいかを確認することで、ポイントが該当するビンを見つけることができるということです。
しかし、これには奇妙なエッジケースがあると思います。私が探しているのは、ビンの適切な表現です。理想的には、半分閉じて半分開いているビンです (したがって、1 つのポイントを 2 つのビンに割り当てる方法はありません)。
numpy/scipyを使用してPythonでこれを行う良い方法は何ですか? ここでは、整数値のビニングのみに関心があります。
どうもありがとうございました。
python - Mac 10.6 Universal Binary scipy: cephes/specfun "_aswfa_" シンボルが見つかりません
i386/x86_64 ユニバーサル バイナリとしてコンパイルし、64 ビット 10.6.2 MacPro1,1 で実行すると、32 ビット モードで scipy を機能させることができません。
私のpythonセットアップ
この回答の助けを借りて、arch
コマンドを使用してアーキテクチャを選択することを意図して、Python 2.6.4 の 32/64 ビット Intel ユニバーサル バイナリを作成しました。(リポを使用して、必要ないくつかのライブラリのユニバーサル バイナリを作成することができました。) すべてが機能します。次に、 hyperjeff の記事の指示に従って scipy をインストールしましたが、より最新の numpy (1.4.0) のみを使用し、scipy のインストール中に numpy を一時的に脇に移動することについて少しスキップしました。
現在、私が知る限り、scipy 以外のすべてが機能しているようで、実際に と を使用して 32 ビット モードと 64 ビット モードを選択できarch -i386 python
ますarch -x86_64 python
。
エラー
Scipy は 32 ビットモードで文句を言います:
問題の追跡を試みる
scipy.interpolate が と呼ばれるものをインポートするように見えます。_cephes
これは と呼ばれるシンボルを_aswfa_
探しますが、32 ビット モードでは見つかりません。scipy のソースをブラウズするとASWFA
、specfun.f にサブルーチンが見つかります。同様の名前を持つ唯一の scipy 製品ファイルは specfun.so ですが、それと _cephes.so の両方がユニバーサル バイナリのようです。
うーん。私は立ち往生しています。私が試すかもしれないが、まだspecfun.soを手動でコンパイルする方法をまだ理解していない.
すべての 32 ビット マシンで scipy が壊れているわけではないと思うので、インストール方法に問題があると思いますが、何が原因かわかりません。
私のかなりユニークな(?)セットアップを考えると、完全な答えは期待できませんが、誰かが私を正しい方向に向ける手がかりを持っているなら、彼らは大歓迎です.
(編集)質問に対処するための詳細:
gfortran (GCC 4.2.1 Apple Inc. ビルド 5646 の GNU Fortran) を使用しています。
Python 2.6.4 は多かれ少なかれ次のようにインストールされました。
Scipy 0.7.1 はほぼここで説明したとおりにインストールされましたが、簡単に言えばsudo python setup.py install
.
nm
David Cournapeau が示唆するように、_cephes ライブラリを で見ると、i386 アーキテクチャではシンボルが定義されていないように見えます。
ただし、その不在についてはまだ説明できません。
python - 3 次 B スプラインの長さを求める
scipy のinterpolate.splprep
関数を使用してパラメータu
でパラメトリック スプラインを取得しますが、のドメインはu
スプラインの線積分ではなく、入力座標の区分的線形接続です。を試してみましintegrate.splint
たが、それは個々の積分が を超えるだけu
です。明らかに、デカルト微分距離の束を数値的に統合できますが、見落としていたスプラインまたはスプラインセグメントの長さを取得するための閉じた形式の方法があるかどうか疑問に思っていました (scipy または numpy を使用)。
編集:閉じた形式のソリューション、または機械精度の回答に収束する非常に高速な方法を探しています。私は数値的な根を見つける方法をほとんどあきらめており、現在は主に閉じた形式の回答を求めています。誰かが楕円関数を統合した経験があるか、(Wolfram 以外の) 良いリソースを教えてくれるなら、それは素晴らしいことです。
Maxima を試して、スプラインの 1 つのセグメントの関数であると私が信じているものの不定積分を取得しようとします: これをMathOverflowにクロス投稿しました