タグ付けされた質問 「scipy」

SciPyは、Pythonプログラミング言語用のアルゴリズムと数学ツールのオープンソースライブラリです。

9
分位数-SciPyを使用した分位数プロット
Pythonを使用してqq-plotをどのように作成しますか? 多数の測定値があり、XY値を入力として受け取るプロット関数を使用していると仮定します。この関数は、測定値の分位数を、ある分布(正規、均一...)の対応する分位数に対してプロットする必要があります。 結果のプロットでは、仮定された分布に従うかどうかを測定で評価できます。 http://en.wikipedia.org/wiki/Quantile-quantile_plot RとMatlabはどちらもこのための既製の関数を提供しますが、Pythonで実装するための最もクリーンな方法は何でしょうか。

3
Scipy.signal.butterを使用してバンドパスバターワースフィルターを実装する方法
更新: この質問に基づいたScipyレシピを見つけました!したがって、興味のある方は、次のサイトに直接アクセスしてください。目次»信号処理»バターワースバンドパス 1次元のnumpy配列(時系列)にバターワースバンドパスフィルターを実装するという、最初は単純なタスクのように見えたものを実現するのに苦労しています。 私が含めなければならないパラメーターは、sample_rate、ヘルツ単位のカットオフ周波数、そして場合によっては次数です(減衰、固有振動数などの他のパラメーターは私にはわかりにくいので、「デフォルト」値ならどれでもかまいません)。 私が今持っているのはこれです。これはハイパスフィルターとして機能しているようですが、正しく実行しているかどうかはわかりません。 def butter_highpass(interval, sampling_rate, cutoff, order=5): nyq = sampling_rate * 0.5 stopfreq = float(cutoff) cornerfreq = 0.4 * stopfreq # (?) ws = cornerfreq/nyq wp = stopfreq/nyq # for bandpass: # wp = [0.2, 0.5], ws = [0.1, 0.6] N, wn = scipy.signal.buttord(wp, ws, 3, 16) …



11
scipy.interpolateが入力範囲を超えて外挿された結果を出すようにするにはどうすればよいですか?
手巻き補間器(数学者の大学によって開発された)を使用するプログラムを移植して、scipyが提供する補間器を使用しようとしています。scipy補間器を使用またはラップして、古い補間器に可能な限り近い動作をさせたいと思います。 2つの関数の主な違いは、元の補間器では、入力値が入力範囲より上または下の場合、元の補間器が結果を外挿することです。scipy補間器でこれを試すと、が発生しValueErrorます。このプログラムを例として考えてみましょう。 import numpy as np from scipy import interpolate x = np.arange(0,10) y = np.exp(-x/3.0) f = interpolate.interp1d(x, y) print f(9) print f(11) # Causes ValueError, because it's greater than max(x) クラッシュする代わりに、最後の行が単純に線形外挿を行い、最初と最後の2つのポイントで定義された勾配を無限に続けるようにするための賢明な方法はありますか? 実際のソフトウェアでは、実際にはexp関数を使用していないことに注意してください。これは説明のためだけのものです。
82 python  math  numpy  scipy 

2
PythonScipyでの2サンプルのコルモゴロフ-スミルノフ検定
Scipyで2サンプルのKSテストを行う方法がわかりません。 ドキュメントを読んだ後scipykstest 分布が標準正規分布と同一である場所をテストする方法がわかります from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) test_stat = kstest(x, 'norm') #>>> test_stat #(0.021080234718821145, 0.76584491300591395) つまり、p値が0.76の場合、2つの分布が同一であるという帰無仮説を棄却することはできません。 ただし、2つの分布を比較して、次のように、それらが同一であるという帰無仮説を棄却できるかどうかを確認したいと思います。 from scipy.stats import kstest import numpy as np x = np.random.normal(0,1,1000) z = np.random.normal(1.1,0.9, 1000) xとzが同一かどうかをテストします 私は素朴なものを試しました: test_stat = kstest(x, z) 次のエラーが発生しました: TypeError: 'numpy.ndarray' object is …

10
scipy sparsecsr_matrixをポータブルデータ形式で保存/ロードします
scipyスパースcsr_matrixをポータブル形式でどのように保存/ロードしますか?scipyスパース行列は、Python 2(Linux 64ビット)で実行するためにPython 3(Windows 64ビット)で作成されます。最初は、pickle(protocol = 2およびfix_imports = True)を使用しましたが、Python 3.2.2(Windows 64ビット)からPython 2.7.2(Windows 32ビット)に移行すると機能せず、エラーが発生しました。 TypeError: ('data type not understood', <built-in function _reconstruct>, (<type 'numpy.ndarray'>, (0,), '[98]')). 次に、numpy.saveandnumpy.loadと同様にscipy.io.mmwrite()andscipy.io.mmread()を試しましたが、これらの方法はいずれも機能しませんでした。
80 python  numpy  scipy 

3
OctaveよりもSciPyの方が100倍以上遅い、大きなスパース行列の最小の固有ベクトルを見つける
大きな対称正方スパース行列(最大30000x30000)の最小固有値に対応する少数(5-500)の固有ベクトルを計算しようとしています。値の0.1%未満が非ゼロです。 私は現在scipy.sparse.linalg.eigshをシフトインバートモード(sigma = 0.0)で使用しています。これは、トピックに関するさまざまな投稿でわかった解決策です。ただし、ほとんどの場合、問題を解決するのに最大1時間かかります。一方、ドキュメントから予想された最大固有値(私のシステムではサブ秒)を要求すると、関数は非常に高速になります。 私は仕事でMatlabに慣れているので、Octaveで問題を解決しようとしました。これにより、eigs(sigma = 0)を使用して数秒(サブ10秒)で同じ結果が得られました。固有ベクトルの計算を含むアルゴリズムのパラメータースイープを実行したいので、Pythonでもそのような時間の増加が得られるでしょう。 最初にパラメーター(特に許容誤差)を変更しましたが、タイムスケールではあまり変わりませんでした。 私はWindowsでAnacondaを使用していますが、scipyが使用するLAPACK / BLAS(これは非常に苦痛でした)をmkl(デフォルトのAnaconda)からOpenBlas(ドキュメントに従ってOctaveが使用)に切り替えようとしましたが、変更を確認できませんでしたパフォーマンス。 使用したARPACKに変更点があるかどうか(およびその方法)はわかりませんでした。 以下のコードのテストケースを次のドロップボックスフォルダーにアップロードしました:https ://www.dropbox.com/sh/l6aa6izufzyzqr3/AABqij95hZOvRpnnjRaETQmka?dl=0 Pythonで import numpy as np from scipy.sparse import csr_matrix, csc_matrix, linalg, load_npz M = load_npz('M.npz') evals, evecs = linalg.eigsh(M,k=6,sigma=0.0) オクターブで: M=dlmread('M.txt'); M=spconvert(M); [evecs,evals] = eigs(M,6,0); どんな助けもappriciated! コメントと提案に基づいて試したいくつかの追加オプション: オクターブ: eigs(M,6,0)とeigs(M,6,'sm')私は同じ結果を与えます: [1.8725e-05 1.0189e-05 7.5622e-06 7.5420e-07 -1.2239e-18 -2.5674e-16] にeigs(M,6,'sa',struct('tol',2))収束しながら …

3
極座標からデカルト座標への変換に従って2次元配列のデータを再配置します
極座標系の位置の関数値を表す2次元配列があります。例えば: import numpy as np radius = np.linspace(0, 1, 50) angle = np.linspace(0, 2*np.pi, radius.size) r_grid, a_grid = np.meshgrid(radius, angle) data = np.sqrt((r_grid/radius.max())**2 + (a_grid/angle.max())**2) ここでdataは、極座標に対応する長方形のグリッドに配置されます。軸が対応するデカルト座標系を表すように、配列内のデータを再配置したいと思います。古いレイアウトと新しいレイアウトは、次のように視覚化できます。 import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=plt.figaspect(0.5)) ax1.set(title='Polar coordinates', xlabel='Radius', ylabel='Angle') ax1.pcolormesh(r_grid, a_grid, data) ax2.set(title='Cartesian coordinates', xlabel='X', ylabel='Y') x_grid = r_grid …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.