旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 行列積の演算子

行列積はNumPyのdotメソッドを利用しますが、Python3.5/NumPy1.10からは@演算子でも行列積を表現できると知ったのでメモします。

import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# a_dot_bとa_at_bは同じ結果になります
a_dot_b = np.dot(A, B)
a_at_b = A@B

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化

【Python】 csv数値データファイルの読み書き

csv数値データファイルの読み書きはnumpyを使うと簡単にできます。

import numpy as np

# csvファイルの読み込み(ヘッダがある場合はskiprowsを1にする)
data = np.loadtxt('file.csv', delimiter=',', skiprows=0)

# csvファイルへの書き込み(%0.2fで小数点以下の桁数を指定している)
np.savetxt('file.csv', data, fmt='%0.2f')

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化

科学技術計算のためのPython入門 ――開発基礎、必須ライブラリ、高速化

【OpenCV】 バイラテラルフィルタの引数について

輪郭をぼかさずにノイズを除去する方法としてバイラテラルフィルタを紹介されたのですが、今一つパラメータの意味が理解できていませんでした。

void bilateralFilter(const Mat& src,
                     Mat& dst,
                     int d,
                     double sigmaColor, // 何これ?
                     double sigmaSpace, // 何これ?
                     int borderType=BORDER_DEFAULT)

幸いこのフィルタについて分かりやすく説明してくれているサイトがあったのでメモしておきます。 imagingsolution.net

サイトと対比させると、sigmaColorは\sigma_2に相当するパラメータで、大きくし過ぎるとガウシアンフィルタと何も変わらなくなるため注意が必要なパラメータ、sigmaSpaceは\sigma_1に相当するパラメータになると思います。

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture13のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

レクチャー13からPandasの話になるのですが、Pandasは使えた方が良いのでしょうか。。。今のところ特に困っておらず(困っていることに気付いていないだけかもしれません)、モチベーションは薄いですが講義受けます。

1. Pandasを使ってcsvファイルを読み込む

import pandas as pd

data = pd.read_csv('csv_example.csv')

2. 読み込んだデータはinfoやheadで内容を確認できる

import pandas as pd

data = pd.read_csv('csv_example.csv')
# 読み込んだデータの表示
data.info
# 指定した行数データを表示する(先頭5行を表示)
data.head(5)

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture10のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

1. 線形方程式はnp.linalg.solveで解ける

import numpy as np

A = np.array([[1,2], [3,4]])
b = np.array([3,4])
x = np.linalg.solve(A, b)

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture4のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。

www.udemy.com

1. ベクトルのユークリッドノルムの計算はnp.linalg.normで出来る

import numpy as np

vec = np.array([1, 2, 3])
norm = np.linalg.norm(vec)

【WPF】 RadioButtonをユーザーが触れないようにする

IsHitTestVisibleとIsTabStopをFalseに設定します。IsHitTestVisibleのみをFalseにした場合、Tabキーを押してRadioButtonに移動し、スペースキーを押すとRadioButtonをチェックできてしまうため、両方Falseにする必要があります。

<RadioButton Content="ReadOnlyRadioButton" IsHitTestVisible="False" IsTabStop="False"/>