Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

月の第n曜日とか、月の最終曜日かどうかの判定

その月の第n曜日の計算と、月の最終曜日の判定関数。 指定の日付に対して、第N曜日の計算は単純に日付だけ。 逆に最終曜日の判定はちょっと面倒。 コード import datetime def nth_weekday(target_date : datetime.date): target_date_day=target_date.day i…

記述のカテゴリ分け

もとの詳細な記述を分析して、下位のカテゴリに分類し、下位のカテゴリをさらに上位カテゴリに再分類する。 2階層のブレイクダウンの逆。ルールは辞書で作成。keyにあたる部分がカテゴリ名、valueにはlistを設定する。 そのリストにある記述が、もとの詳細な…

3次元の表

多次元(3次元)の配列が必要になったので、初期化と参照の方法を確認。 2次元表の中の1枠をcellとみなして、cellの中にも1次元の配列があるイメージ。 コード import itertools print("3次元の配列") dim_row =2 # row dim_col =3 # col dim_cell =4 # cell #…

コンソールの同じ行にprint

コンソールで、表示を更新したいけど、行は増やしたくないときに使うもの。消してもよい情報をprintするときは、printt.printt("hoge","piyo1",over_write=True) のように、"over_write=True” とする。 実行結果 ('hoge', 'piyo0') ('hoge', 'piyo3') ('hoge…

pythonでの環境変数操作

pythonでの環境変数の参照、設定、削除。 クラスにしたもの 1つの環境変数ごとに1つのインスタンスが必要。 import os class myosenv(): def __init__(self,new_key:str, value_str=None): self.new_key=new_key key_value=os.getenv(self.new_key) if key_v…

classmethodとクラス変数

クラスのインスタンスを作らずにクラスの関数を実行したい場合のメモクラス変数であればclassmethod内で参照できる。インスタンスを作ればクラス変数も変更できる。 classmethod内では、インスタンス変数は一切参照できない。(作ったインスタンスでclassmeth…

markdownの箇条書きにチェックボックスをつける

markdownの箇条書きの先頭にチェックボックス”[ ]”を付与するスクリプト。 引数でmdファイルを指定する。_addcheck.md にリネームして保存する。markdown-pdfでhtmlにすれば、チェックボックスとして動作するところまで確認。(チェックの変更は保存できない)…

sklearnでクラスタリング(その3)

学習済みのクラスタ識別機は、pickleで保存する模様。 プログラム import numpy as np from sklearn.cluster import KMeans import pickle import os X = np.array([[0, 0],[0, 1],[1, 0],[1, 1], [0, 10], [0, 9], [0, 8], [10, 10], [10, 9],[9,10]]) Y = …

f文字列も便利だけど、.format(**辞書)も便利

.format(**辞書)とすると、f文字列見たいな設定で動作する。便利。 プログラム a={} a["foo"]="foo1" a["bar"]="bar2" b="foo in a = {foo}, bar in a = {bar}".format(**a) print(b) 実行結果 foo in a = foo1, bar in a = bar2

seabornを使ってみた ヒートマップを描画する

元データをピボット処理してヒートマップに描画する例。 ヒートマップの際の並べ替え指定が面倒なので、昇順に並べればよいような行/列名にしておいたほうがよさそう。各列の最大値に対して、強調枠を設定。枠の場所の指定方法が、dfの並びと同様、左上がゼ…

リストを列に見立てて、列を拡張(追加)。DBMSにテーブル定義して値も格納する。

リストを列に見立て、列を拡張(追加)していけるクラス。 最終的にはDBMSにテーブル定義して値も格納する。ファイルの名前とか、クラスの名前とか、どう表現すればよいのかやや悩み。 プログラム list_manager_for_table.py import sqlite3 class list2d_for_…

シフト幅を変更できるリスト一括比較

こんな感じの比較。2つ先とか⁺3つ先とかシフト幅を変更できる。 プログラム def compair(x, y, y_shift, negative=0, na=None): ''' リストを利用した一括の比較 x[i]<=y[i+y_shift]の結果のリストを返す。 Trueのときには1 Falseの時にはnegativeの値が入る…

テーブルの定義とデータをファイルに。インポートとエクスポート。

テーブルの定義とデータをファイルに。インポートとエクスポート。 import sqlite3 import datetime import os import csv import time # ダミーデータを作るときのsleep用。 class tabledata_file_converter(): """テーブルの情報をファイルに書き出す、フ…

PlantUMLの配置図の位置調整

PlantUMLの配置図の、レイアウトというか位置調整がうまくいかなかったのでメモ配置図の構文と機能 生成された図 生成された図 umlファイルの上に書いたものが左に配置される。 矢印でつなぐ際に「-」では横でつながるが、「--」や「..」など、2個でつなぐと…

Python サブモジュールのディレクトリ構造とunittestの話

プログラムとunittestを同じディレクトリに置くパタンのテスト。 パッケージ(hello_submodule)の同列にtestディレクトリを作って、unittestのファイルを置く構成が標準らしいが、パスの設定関係がとても面倒なので。プログラムとunittestを同じディレクトリ…

markdownで書いたドキュメントにPlantUMLの図を挿入する方法

markdownで書いたドキュメントにPlantUMLの図を挿入する方法。 以下、どちらも可能。 mdファイルに直接記載する。 PlantUMLのファイルを参照する。 これで、ファイル分割しつつ、図と説明をテキストファイルで記述できるようになった。 結果 プレビューされ…

Neural Network Consoleによる学習済みニューラルネットワークの利用(その2)

識別機として作ったネットワークの中間層の値をエンコード値として使う、オートエンコーダもどきがつくりたかったのでテスト。 誤差関数には、y(OneHotにした3列のクラス値 )を入れているので、オートエンコーダではないが、実質的には同じもの ネットワー…

seabornを使ってみた

seabornを使ってみた。 plt.show(block=False) # これがないと表示されない。block=Falseがないとグラフを閉じるまでプログラムの実行が一時停止する。 ソースコード import numpy as np import seaborn as sns from matplotlib import pyplot as plt x = np…

NasneからNASへの移行(速報版)

とりあえず最低限の目途はついたので、NasneからNASへのデータ移行メモ。 用途としては、録画データの延命。Nasneは古くなっていて、いつ壊れてもおかしくないので。まだNasneからコピーしていない録画番組を選んでコピーや、コピーした番組の番組名ごとのデ…

iPhoneのバックアップ先をDドライブへ

iPhoneのバックアップデータがCドライブの容量を食うので、iTunesが書き込むiPhoneのバックアップ先のディレクトリをDドライブに移動させる話。(公式ではないので自己責任で) 手順 大まかには、シンボリックリンクをつかって、iTunesが書き込むiPhoneのバッ…

openpyxlで、エクセルファイルのフィルタの設定をする

openpyxlで、エクセルファイルのフィルタの設定をする実証コードエクセルで開いても、フィルタの設定は入っているが、フィルタ表示はされていない状態で表示される。 エクセルで開いて、フィルタのプルダウンを開いて、再適用すれば、フィルタリングされた状…

順位を教えてくれる関数

順位を教えてくれる関数。 データ件数に対してn^2で計算時間がかかるようなので、大きな配列への適用は難しい。自前環境での計算時間は大体以下の通り。 # 10000個で、0.2秒 # 20000個で、0.7秒 # 30000個で、1.5秒 # 40000個で、2.7秒 プログラム import nu…

Cisco スイッチコマンド備忘録

gwがスイッチの名前です。 Terminal(CUI関係) terminal length 0 --More-- が出てくるときに。0にすれば全部一括で表示される。行数を指定できる。 DHCP関連 DHCPのリリース状況確認 show ip dhcp binding 固定IPの割り当て configure ip dhcp pool pool_sam…

リストの結合と、DBへの格納

長さが同じリストを、列が増える方向に連結して、DBに格納する検証コード。 Pandasを経由したほうが、SQLでのテーブル定義 をしなくてもよいから楽 プログラム import pandas as pd import sqlite3 # 長さが同じListを、列が増える方向に連結 # Index は無し…

Visual Stuido Code & Anaconda環境構築(その2)

vscodeでanacondaを使うと出るエラーの対策。a以下のコマンドを実行すると、対処できるかも。 conda init エラーの内容 PS C:\dev> C:/Users/<ユーザー名>/Anaconda3/Scripts/activate PS C:\dev> conda activate base conda : 用語 'conda' は、コマンドレ…

移動平均(numpy.convolve利用)1次元

関連記事に乗せている2次元よりは1次元のほうが使い勝手がよさそうなので書き換え。起点からwindowsizeの範囲で合計するだけではなくて、起点側を,ignoresize個を無視して合計するような形にしている。np.convolveの2つ目の引数の割当たりかたが想像の逆なの…

DBのテーブルから列データをリストで取得する

DBのテーブルから列データをリストで取得する。fetch()で取得すると、行ごとのタプルのリストになっていて、処理しづらいので、ほしい列の値だけをリストにする関数get_one_column_data_list()を作成。 リストのメモリ確保のため、件数確認のget_countも作成…

分割してCSVに書く、分割されたCSVを読む

1年前のプログラムの一部改良。 複数ファイルを連続して読むプログラム - Cucco’s Compute Hackディレクトリのパスと、ファイル名(拡張子ナシ、連番ナシ)を与えて、 決まった行数を書いたファイルを保存する、それらのファイルを開いて読む、というプログラ…

pythonの引数ライブラリargparse

argparseのサンプルコード。-から始まる名前にしてOptional引数にして、 action="store_true"をつけておけば、フラグとして利用できそう。 プログラム import argparse if __name__ == "__main__": parser = argparse.ArgumentParser() # 必須引数(=位置引…

pythonの.formatに辞書を渡すときの書き方

pythonの.formatに辞書を渡すときの書き方。 dic={"key": "value"} "value: {key}".format(**dic)