python勉強記録

Python,Matlab,VBA主に自分用の備忘録

2021-10-15から1日間の記事一覧

matplotlibで横線を引く

ax1.hlines(mean_1,0,20)ax1.hlines(sen_1_left,0,20)ax1.hlines(sen_1_right,0,20)ax2.hlines(mean_2,0,20)ax2.hlines(sen_2_left,0,20) ax2.hlines(sen_2_right,0,20) horizonの略 vlinesもある hlines(y座標,x_min,x_max)の引数

matplotlibで縦線を引く

ax1.axvline(x=sen_1_left , color="blue", label="meam±3sigma")ax1.axvline(x=sen_1_right , color="blue")ax2.axvline(x=sen_2_left , color="orange", label="meam±3sigma")ax2.axvline(x=sen_2_right , color="orange")

matplotlibテンプレ

# -*- coding: utf-8 -*- import matplotlib.pyplot as pltimport pandas as pdimport csvimport seaborn as sns sns.set_style("white")sns.set_style("ticks")sns.set_style({"xtick.direction": "in","ytick.direction": "in"}) #plt.rcParams['font.fami…

python3.10の不具合

エラー内容 pipでNumpyがインストールできない。 解決策 デフォルトpythonを3.9にしたら直った。 visualstudiocodeの左下のpython3.9とか書いてあるところをクリックするとpythonの選択ができる。 ANACONDAとの共存 ANACONDAをインストールするときにPATHを…

pandasでdfの行や列を取り出す

列 x=df.iloc[:,0]y=df.iloc[:,1] 行 y=df.iloc[1] 注意すべきはMATLABと違うところ。 行の場合はセミコロンがいらない。

サビツキゴレイフィルタ(savgol)

def savgol(y,n):#サビツキ-ゴレイフィルタ signed_y = signal.savgol_filter(y, n, 7, mode="mirror") return signed_y 結構お世話になっているフィルタ。 窓の長さは奇数にしないといけない。 参考にしたブログではデータ数/4 +1としていた。 n=len(list) …

移動平均フィルター

def move_average(y): #移動平均 param=15 v=np.ones(param) / param y=np.array(y) y_signed=np.convolve(y, v, mode='same') return y_signed

unzipは*zip

def data_range_csv_make_kai(self,file_name): with open(file_name, encoding="cp932") as f: lineral= f.read().splitlines() del lineral[0:320] #20行削除 data= for line in lineral: if line: data.append(line) else: break kara= for line in data:…

時系列データで初めて閾値超えた点の検出

#R開始点は閾値を超えたところとして定義する thresh=[] ; threshold=np.average(y[0:100]+100) for i,j in enumerate(y): if j>threshold: thresh.append(i) else: pass メモリの無駄遣いだが、thresholdを超えているなら空のリストに追加して、リストの先…

subplotするときにfor文を使う

def visualize_1(self,file_name): #結果を可視化する x=self.x ; y=self.y plt.rcParams["figure.figsize"] = (15, 8) plt.style.use('seaborn-whitegrid') fig=plt.figure() ax=[[0,0,0],[0,0,0]] for i in range(2): for j in range(3): ax[i][j]=fig.add…

大量のグラフを作成し保存

def picture_make(file_name): #画像保存用のディレクトリを作成しその中にグラフの画像を保存する picture_title=file_name[-8:-4] picture_box=os.path.join(path_loc,"picture") if os.path.exists(picture_box)==False: os.mkdir(picture_box) else: pas…

様々なフィルター

ピーク検出のために平滑化フィルタを使う場面があり、 移動平均フィルタとサビツキゴレイフィルタはよい結果を得た。 ローパスフィルタとHAMPELフィルタも試みたが微妙だった。 HAMPELフィルタ hampel · PyPI

インジェクタの論文(Ti-qのSカーブ , 閉弁検知)

直噴インジェクタのシミュレータ開発 Ti-qのSカーブの理由など書かれている ja (jst.go.jp) インジェクタ 閉弁の検出に波形のゆがみを利用していることが書いてある 23-doc-keynote-03-ja.pdf (denso.com)

SN比の定義と求め方

SN比の定義はたくさんある。 二乗和平方根 FFTしてからの比 ピークの比 ピーク面積の比 信号のσを雑音のσで割ったもの 結論 業界で標準とされているやり方を見つけてくる。 任意のSignal-to-Noise比の音声波形をPythonで作ろう! - LINE ENGINEERING (lineco…

ファイル名が短いファイルの頭に文字列追加

def mojisuu(file_names):#文字数が短すぎるとエラーになるからそれの回避、ファイル名の頭にAAAを追記 file_names_kai=[] for i in file_names: if len(i)<8: os.rename(os.path.join(path_loc , i) , os.path.join(path_loc , "AAA"+i)) file_names_kai.ap…

10行以下のテキストファイルを削除

def pre_osouji(path):#10行で終わっているファイルを削除する。 delete_list=[] for file in path: with open( file, "r", encoding="cp932") as f: lineral=f.read().splitlines() if len(lineral) < 15: delete_list.append(file) for file in delete_lis…

startswithとendswith

def xlsx_delete(path):#紛れ込んでいるエクセルファイルを削除 delete_list=[] for file in path: if file.endswith("xlsx"): delete_list.append(file) else: pass for file in delete_list: os.remove(file) path.remove(file) (文字列).endswith()として…

配列にインスタンスを格納

def instance_get(file_name): #配列にインスタンスを格納する dataset=[] for a in file_name: b=Core(a) dataset.append(b) 解説 file_nameが読み込みたいCSVファイルのフルパスを格納したリスト。 tkinterのaskdirectoryで聞いたディレクトリ内にあるファ…

osモジュールの基本

os.path.join() os.mkdir() os.remove() mkdirするときはすでに存在するディレクトリを作成しようとするとエラーになるのでif文で存在確認をするとよい。 存在確認 def picture_make(file_name): #画像保存用のディレクトリを作成しその中にグラフの画像を保…

globの使い方

*などを用いてファイルを指定できる。 def osouji(path): for file in glob.glob(path): os.remove(file) osouji(os.path.join(path_loc,'*.csvkai')) 解説 tkのaskdirectoryで聞いた場所をglolbal変数(path_loc)にしておいて、それと*.csvkaiをパス結合する…

パスの結合と注意点

OSによって\\だったり\だったりする。 os.path.joinしたとき混ざってしまっていてエラーになることがある。 def asking_location():#保存先フォルダを選択 idir = '.' filetype=[("all file","*")] global path_loc path_loc = tk.filedialog.askdirectory(i…

ファイルの一覧を格納したリストの取得

def filename_get(): #フォルダ内のファイル名の一覧取得 #path=os.getcwd()+"\libra" global path_loc path_loc=Path.asking_location() files = os.listdir(path_loc) files_file = [f for f in files if os.path.isfile(os.path.join(path_loc, f))] 他 o…

tkinterでディレクトリを聞く方法

def asking_location(): main_win = tk.Tk() main_win.title("タイトル") main_win.geometry("400x300") label = tk.Label(text="コメント") message = tk.Message(text="コメント") label.pack() message.pack() idir = '.' filetype=[("all file","*")] gl…