【WPF】 UIElement上のマウスイベントが発生しない
Imageの上にCanvasを置いて、CanvasにLineやEllipseをマウス操作を通じて描くことで、仮想的にImage上に絵を描いたように見えるようにしたいと思っています。
<Image .../> <Canvas .../>
そこでCanvasにMouseDownイベントを付けたのですが、Canvasをクリックしても一向にMouseDownイベントが発生しませんでした。このような時の対処法がここに書かれていました。
自分の場合はリンク先に書かれている1番のやり方(CanvasのBackgroundにTransparentを指定すること)でMouseDownイベントが発生するようになりました。
はてなブログでtexの数式が上手く表示されない時の対処法
texの数式が思った通りに表示されず困っていたのですが、こちらのサイトのおかげで無事解決しました。
【Python】 季節性分解実行時のエラーへの対処
季節性分解のやり方を調べていると、seasonal_decomposeメソッドを利用すれば良いことが分かりました。ただ、実行すると
TypeError: ‘numpy.float64’ object cannot be interpreted as an integer
というエラーが出てしまいました。
import statsmodels.api as sm df = pd.read_csv('time_series_data.csv', index_col=0) df = df.reset_index() df['datetime'] = pd.to_datetime(df['datetime'], format='%Y/%m/%d') df['y'] = df['y'].values.astype(float) df = df.set_index(['datetime']) # ここでエラー res = sm.tsa.seasonal_decompose(df.values, freq=7) res.plot() plt.show()
このエラーはstatsmodels\tsa\filters\filtertools.pyの下記コードを
elif nsides == 2: trim_head = np.ceil(len(filt)/2.) - 1 or None trim_tail = (np.ceil(len(filt)2.) - len(filt) % 2) or None
下記のように書き換えると動作するようになりました。
elif nsides == 2: trim_head = np.ceil(len(filt)/2.) - 1 or None trim_head = (int)(trim_head) trim_tail = (np.ceil(len(filt)2.) - len(filt) % 2) or None trim_tail = (int)(trim_tail)
【Python】 ピリオドグラムを描画する
グラフの周期を調べるためピリオドグラムの描画方法を調べていたのですが、statsmodels.tsa.stattoolsのperiodogramを使えば良いようです。
from statsmodels.tsa.stattools import periodogram data = np.array([0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0, -1.0, 0.0, 1.0, 0.0]) pg = periodogram(data) plt.plot(pg) plt.show()
【WPF】 画像ファイルをBitmapImageに読み込むと、その画像ファイルを削除できなくなるケースの対処法
Imageクラスに画像を表示するため下記のようなコードを書くと、画像ファイルを消去するときに例外が出てしまいました。
// 画像を読み込む var bmp = new BitmapImage(new Uri(filePath)); // Imageに表示する SomeImage.Source = bmp; // もう画像を表示する必要は無い SomeImage.Source = null; // 画像ファイルも不要。でもファイルがロックされっぱなしで消せない File.Delete(filePath);
上記問題に対する対処法が以下に書かれていました。感謝です。
【Python】 フレームワークによるBatchNormalizationのmomentumの違いについて
KerasのBatchNormalizationの引数momentumはデフォルト値が0.99です。一方でTorchのBatchNormalizationの引数momentumはデフォルト値が0.1のようです。 いくらフレームワークが違うといっても、ここまで初期値が違うものかと調べてみると、Kerasは下記式のαをmomentumと呼んでいて(Tensorflowのassign_moving_averageメソッドまで辿るとmomentumではなくdecayという名前に変わっています)、Torchは1-αをmomentumと呼んでいるようです(Batch Normalization Momentum? · Issue #695 · torch/nn · GitHub)。
TorchのプログラムをKerasに移植する、またはその逆を行う場合には注意が必要そうです。
【Python】 AUC計算方法のメモ
PythonでAUCを計算する方法を探していたのですが、下記がコードも掲載されており詳しかったです。
from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_curve, auc classifier = RandomForestClassifier() predictions = classifier.predict_proba(X) precision, recall, thresholds = roc_curve(Y, predictions[:,1]) score = auc(precision, recall)