- 1. Python – pandasライブラリを使ってCSVファイルを読み込む – 初級編
- 2. [py2rb] 多重継承の4
- 3. PythonのEnumの比較結果がなぜかFalseになる
- 4. 【pip+venv】データサイエンス環境構築 ~ JupyterLabの仮想環境の作業ページをすぐ起動できるようにする
- 5. Python time.sleepのsleepできるのは最小何秒?
- 6. Linux上にPython+Selenium+Chromeの動作環境を構築する
- 7. mac で pyenv で python 3.7.2 がインストールできないとき
- 8. AIシステムトレード PIX2PIX反省点
- 9. 【OpenHack】AI-Powered Knowledge Mining いけばわかるさ!
- 10. 海賊版サイト問題で”CDN事業者” が提訴されたので技術的にCDNを考える
- 11. VRChatでOSCやーる(Python3.9、Windows10)
- 12. レコメンド指標でよく見るMAP@kとは
- 13. MLflow Projects と Tracking を同時に使う
- 14. 「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#11
- 15. pandas DataFrameの条件にあてはまる値のindexとcolumnを取得する方法
- 16. 超絶簡易版wordle
- 17. Pythonで証券コードから会社名の取得(Edinetコードリストを利用)
- 18. Githubのリポジトリをフォルダツリーにしてみた
- 19. SQLModelとは 〜SQLModelインストール・DB接続・データ追加・データ取得まで〜
- 20. サンプル用クラスタリング用のデータを作成しよう
Python – pandasライブラリを使ってCSVファイルを読み込む – 初級編
Pythonには超絶便利なライブラリがたくさん。
今回は、Pandasライブラリを使ったCSV読み込み手順をご説明。
infoは除いたけど、とりあえず最低限これが使えれば、
ファイル読み込み処理の初歩はできますね?# 1. ライブラリのインストール(入っていなければ)
以下を実行。“`python
#x.x.xはインストールするバージョン
mamba install pandas==x.x.x -y
#x.x.xはインストールするバージョン
mamba install numpy=x.x.x -y
“`# 2. Import宣言
“`python
import pandas as pds
import numpy as np
“`# 3. ファイルの読み込み (read_csv) ※ロードしたに過ぎないので、この後データの読み上げが必要。
csvファイルを読み込むには、read_csvを使います。
pandas.read_csv(ファイルパス, option)で呼び出します。“`python
import pandas as pdsfi
[py2rb] 多重継承の4
# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# 多重継承 (Python)
https://qiita.com/superrino130/items/89b58bfb4e89500a8e7c前回の記事で、多重継承は表現できたものの、継承の継承は表現できていなかったので、やってみた。
# delegate (Ruby)
“`ruby
require ‘delegate’class Fi
def original_method(*args, **kwargs)
‘original’
end
endclass Se1
def method_missing(method, …)
‘dummy’
end
endclass Se2
def initialize(…)
@c = SimpleDelegator.new(Fi).new(…)
@k =[@c]
enddef method_missing(method, …)
@k.each do
PythonのEnumの比較結果がなぜかFalseになる
## はじめに
Pythonのunittestを書いていて、同じはずのEnumオブジェクトの比較結果がなぜかFalseになってしまう事象で少し詰まった。結果的に凡ミスだったが、今後ハマる人のために共有しておく。
PythonのEnumやunittestについては詳しく触れないので、気になる人は以下の公式資料を参照すると良い。
https://docs.python.org/3.9/library/unittest.html
https://docs.python.org/ja/3.9/library/enum.html
## TL;DR
importのパッケージ名を揃えれば解決する。
## 問題の再現
以下のようなディレクトリ構成を考える。
“`
enumbug
├── b.py
├── enums.py
└── test.py
“`各ファイルの中身は以下の通り。
“`enums.py
from enum import Enumclass Color(Enum):
RED = 1
BLUE = 2
GREEN = 3
“`
【pip+venv】データサイエンス環境構築 ~ JupyterLabの仮想環境の作業ページをすぐ起動できるようにする
# 経緯
Anacondaの商用利用は制限され、仕事で使いづらくなった。
condaの代わりの仮想環境管理ツールは、pip+venvが良いらしい。
そこで、自分用の手順をまとめた。本手順で、以下のことができるようになる。
– プロジェクトごとに仮想環境を作成
– JupyterLabはショートカットから一発起動
– カーネルは、Jupyterに追加した仮想環境を選択して実行# 想定環境
– Windows10 Pro
– Python 3.9.x# 作業手順
## 1.Pythonのインストール
公式ページからダウンロード・インストールする。
https://www.python.org/downloads/
※2022年2月17日時点:今回は最新バージョン(3.10.x)ではなく3.9x.をインストールした。pathlibがインストール出来なかったため。## 2.ローカル環境の構築
ローカル環境はjupyterlabやpandasなどよく使うパッケージを入れておく。| **作業内容** | **コマンド**
Python time.sleepのsleepできるのは最小何秒?
# 結論
**0.01秒**
どっかの記事に0.001秒ってあったけど実際は0.01秒以上スリープさせることはできないのでご注意ください
# 検証
スリープ前後の経過時間と指定値の差を求める。
“`Python
import timedef test(sleep_time):
begin_time = time.time()
time.sleep(sleep_time)
end_time = time.time()
from_begin_to_end = end_time – begin_time
print(f’sleep time: {sleep_time}’)
print(f’end-begin={from_begin_to_end}’)
print(f’誤差: {sleep_time-from_begin_to_end}’,end=’\n\n’)for sleep_time in [1, 0.1, 0.01, 0.001, 0.0001, 0.00001]:
test(sleep_
Linux上にPython+Selenium+Chromeの動作環境を構築する
#はじめに
SeleniumとはWebブラウザの操作を自動化できるフレームワークのことです。
本記事ではSeleniumを使う環境の一つとして、Linux上にPython+Selenium+Chromeの環境を構築する手順を紹介します。
#構成
今回使うLinux環境は、以下のようなインスタンスをAWSにて作成しました。|項目|設定値|
|—|—|
|プラットフォーム|Amazon Linux|
|インスタンスタイプ|t2.micro|#環境構築
以降のコマンドはデフォルトのユーザ(ec2-user)を使った場合のものとなってます。
###Python3のインストール
まず、yumのアップデートを実行します。“`
$ sudo yum update
“`
yumのアップデートが完了後、Python3のインストールを行います。
Python3をインストール時に合わせてpip3もインストールされます。“`
$ sudo yum install python3
“`
なお、Amazon Linuxではデフォルトで`python`コマンドにはPython2の方が
mac で pyenv で python 3.7.2 がインストールできないとき
社内で発生した問題をみんなで解決しました。メモとして残しておきます。
# 問題
mac で pyenv で python 3.7.2 がインストールできない“`zsh
$ pyenv install 3.7.2
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.2.tar.xz…
-> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
Installing Python-3.7.2…
python-build: use readline from homebrew
python-build: use zlib from xcode sdkBUILD FAILED (OS X 11.5.2 using python-build 20180424)
“`# 環境
– macOS Monterey
– zsh# 解決法
以下の方法
AIシステムトレード PIX2PIX反省点
https://qiita.com/EasyCording/items/02f6e54d8c133810f097
少しブログの方で取引を進めていて、今のやり方に対する疑問が出てきた。
http://1969681.blog66.fc2.com/# 現状
いまのところは、為替データを2つに分けて、ペアで学習させている。
wsizeがサンプリング期間で前半64、後半64のデータとなる。
“`main.py
wsize=128 #サンプル期間def min_max(x, axis=None):
min = x.min(axis=axis, keepdims=True)
max = x.max(axis=axis, keepdims=True)
result = (x-min)/(max-min)
return resultdef imagemake(dfspan1,dfspan2):
a = np.array([x for x in dfspan1[‘df’][‘close’]])
b = np.array([x for x
【OpenHack】AI-Powered Knowledge Mining いけばわかるさ!
# はじめに
みなさん、検索エンジンってつくったことありますか?
私はあります:muscle: そう、**OpenHack**で。本記事は2月開催OpenHackに参加して得た学びの記録です。
https://openhack.microsoft.com/
## 今回のテーマは AI-Powered Knowledge Mining
OpenHackは8つのテーマに分かれていて、開催回ごとにテーマが変わります。

>AI-Powered Knowledge Mining OpenHackでは、開発者がアプリケーションやサービスにインテリジェントな検索機能を追加し、人工知能を活用してデータから意味のある結果を抽出できるようにします。参加者は、
海賊版サイト問題で”CDN事業者” が提訴されたので技術的にCDNを考える
# はじめに
出版物の海賊版をネット上で公開したとして逮捕された”漫画村”の事件はみなさん記憶に新しいかと思います。
昨今、ネット上で動画や音楽などさまざまなものを楽しめる時代です。出版物のサブスクというのもくるのではないかといわれています。以下”海賊版”のWikipediaより一文引用します。
>海賊版(かいぞくばん)は、法律上の権利を無視して諸権利を有しない者により権利者に無断で発売または流通される非合法商品である。
権利の生じているものを無断でネット上に公開することは確かに問題だと思います。
ただ、この問題はここで止まりませんでした。
まずは以下の記事を読んでみて欲しいです。(無料公開部分だけでも良いかと思います。)https://www.asahi.com/articles/ASQ2J4FDJQ2BUTIL068.html
“小学館、集英社、講談社、KADOKAWAの大手出版4社”がCDN事業者を提訴するに至りました。今回、この問題を技術的に考えてみたいです。
# モチベーション
背景として、私はインターン生時代にCDNを使って某コンテンツを配信しておりま
VRChatでOSCやーる(Python3.9、Windows10)
# はじめに
VRChatがOSC対応とのことでやっていくー# 開発環境
– Windows10 PC
– VRChat
– TouchOSC
– Python3.9
– python-osc
– protokol-0.4.4.86-win64.exe# 導入
1.Steamを開き、VRChatのプロパティ
2.open-betaを選択し、VRChatを起動
3.rでメニュー開き、Optionsを選択
**について解説する
– MAPについて説明する前にまず前提条件として**Precision@k (P@k)**、**Average Precision @k (AP@k)** についても説明する## 問題設定
– 正解を予測して並べた5個 (k=5)のデータのうち何個正解できたかを考える
– 例えば5個並べた商品のうち、実際にクリックされたのはどれだったか– 以下の例だと1番目と4番目を正解したことになる
– これを評価するメトリクスを考えたい
– 単純に5個中何個正解できたかを考えてみる (2/5)
– でも同
MLflow Projects と Tracking を同時に使う
[MLflow](https://www.mlflow.org/) の [Projects](https://www.mlflow.org/docs/latest/projects.html) は実験の再利用をしやすくするためのツールで、 [Tracking](https://www.mlflow.org/docs/latest/tracking.html) はパラメータや計量を記録するためのツールです。それぞれを紹介している記事はよく見るものの、合わせて使っている記事を見かけなかったのでやり方をメモしておきます。
## tl;dr
`mlflow run` で起動した run ID を Tracking でも使用するようにします。そのためには環境変数 `MLFLOW_RUN_ID` を使います。
## 確認した環境
– Python 3.9.10
– mlflow==1.23.1## 動かし方
以下で動かすサンプルコードは GitHub の[このリポジトリ](https://github.com/pn11/MLflow-Projects-and-Tracking)にあり
「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#11
【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB
pandas DataFrameの条件にあてはまる値のindexとcolumnを取得する方法
# はじめに
Excelだと条件に当てはまるcellに何かしらの変更を加えるのは簡単
なのにpandas dataframeだと直感的な関数がない!
ということで二通りの方法を考えてみました#サンプルデータ
“`python
import numpy as nptimestep = [[np.random.randint(2) for _ in range(9)] for __ in range(3)]
index = [f’station{i}’ for i in range(3)]
columns = list(map(str, np.arange(9)))
df = pd.DataFrame(timestep, index=index, columns=columns)
“`サンプルデータは0と1のみで構成されたデータフレームです
# 1. 全探索型
“`python
ls = []
for i in df.index:
for j in df.columns:
if df.at[i,j] == 1:
超絶簡易版wordle
超絶簡易版wordleのpythonコード
メモ的な“`simplewordle.py
import hashlibprint(“please question key”)
key = str(input())
#keyはドラクエで言う復活の呪文みたいなもの
#適当な英単語(5文字でなくてもいい)を入力してくださいprint(“guess the word”)
guess = str(input())
#guessには回答を英単語5文字で回答してください
#英単語5文字じゃないと多分バグりますwordlist = [“apple”,”brood”,”candy”,”drive”,”enter”]
#答えになる単語のリストhs = hashlib.md5(key.encode()).hexdigest()
hs2 = int(hs,16) % len(wordlist)
answer = wordlist[hs2]guessls = list(guess)
answerls = list(answer)ret = “”
for i in range(5):
Pythonで証券コードから会社名の取得(Edinetコードリストを利用)
## Edinetコードの読み込み
PythonでEdinetコードリストから証券コードと会社名を読み出せるようにします。
Edinetの[EDINETタクソノミ及びコードリスト](https://disclosure.edinet-fsa.go.jp/E01EW/BLMainController.jsp?uji.verb=W1E62071InitDisplay&uji.bean=ee.bean.W1E62071.EEW1E62071Bean&TID=W1E62071&PID=currentPage&SESSIONKEY=1645101977516&downloadFileName=&lgKbn=2&dflg=0&iflg=0)にあるコードリストダウンロードし、zipファイルから`EdinetcodeDlInfocvs`を保存します。
このファイルは先頭行に「ダウンロード実行日」の記載があり、2行目に項目行、3行目以降に会社名や証券コードの記載があります。
このため、`Pandas.DataFrame.csv_read`だと、うまく読めなかったため、`csv.reader`を使い読み
Githubのリポジトリをフォルダツリーにしてみた
[Svelte Tutorial](https://svelte.jp/tutorial/svelte-self)にフォルダツリーを表示させるセクションがあったので、Github のリポジトリを適応させてみました。
## Svelte Tutorial の構成

チュートリアルの構成は以下のようになっています。
“`
├─Folder.svelte
├─File.svelte
└─App.svelte
“``root`変数にフォルダツリーを作成するためのオブジェクトが格納されています。データとして扱いづらいですがこのままのフォーマットで行きます。
“`svelte:App.svelte