- 1. 傾向スコアを使った因果効果の推定方法
- 2. 複数銘柄の日足株価データを週足の株価データに変換する方法
- 3. 講義用のフォルダをまとめて作成する[python]
- 4. 画像キャプション生成モデル 「CATR」の出力文を入力画像に埋込んでファイル出力するように書き換えてみた
- 5. PythonでAzure Blob Storageから画像をメモリに直接読み込む
- 6. 【競プロ典型90問】002の解説(python)
- 7. Optiver Realized Volatility Predict 走り書き
- 8. Transformerベースの画像キャプション生成モデル CATRを動かしてみた
- 9. 完全自作プラネタリウムを作る
- 10. Titanic終了後の壁
- 11. Pythonでオリジナルのドット絵エディタを作る(1) – シンプルなドット絵エディタ
- 12. pyenvでPythonのバージョンを切り替えられない場合の対処法
- 13. Pythonで論文用のグラフ作った話
- 14. Z3Py 例題 ビンパッキング問題
- 15. Kaggle Python Tutorial Exercise: Loops and List Comprehensions
- 16. FastAPIのOpenAPIバージョンをpyproject.tomlから取得する
- 17. pythonで周期表の語呂合わせなどの音声を発生させる簡単な方法
- 18. 【Python】「2つのエクセルシートを見比べて、単価を拾い、記入していた手動処理」を完全自動化した話。
- 19. Pythonでタスクマネージャーっぽいのを作った(Windows限定)
- 20. BOXのPythonSDKを使うとフォルダ内リスト取得APIのlimitが効かない
傾向スコアを使った因果効果の推定方法
# はじめに
[調査観察データの統計科学](https://www.amazon.co.jp/%E8%AA%BF%E6%9F%BB%E8%A6%B3%E5%AF%9F%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E7%B5%B1%E8%A8%88%E7%A7%91%E5%AD%A6%E2%80%95%E5%9B%A0%E6%9E%9C%E6%8E%A8%E8%AB%96%E3%83%BB%E9%81%B8%E6%8A%9E%E3%83%90%E3%82%A4%E3%82%A2%E3%82%B9%E3%83%BB%E3%83%87%E3%83%BC%E3%82%BF%E8%9E%8D%E5%90%88-%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%E7%A2%BA%E7%8E%87%E3%81%A8%E6%83%85%E5%A0%B1%E3%81%AE%E7%A7%91%E5%AD%A6-%E6%98%9F%E9%87%8E-%E5%B4%87%E5%AE%8F/dp/4000069721)に記載の傾向スコアを使った因果効果の推定
複数銘柄の日足株価データを週足の株価データに変換する方法
#1. この記事は
複数銘柄の日足データを銘柄ごとに週足データに算出するコードを掲載する。
#2. コードの説明
pd.Grouperを使うのがポイントです。Multiindexの場合、groupbyを使用するとresampleのコードでエラーが発生します。よって、pd.Grouperを使用します。“`python:sample.py
import pandas as pd
import numpy as npdat=[
[1570,”2021/7/5″,15650,15670,15490,15520,3315590],
[1570,”2021/7/6″,15620,15690,15500,15560,3165551],
[1570,”2021/7/7″,15050,15340,15030,15260,6047534],
[1570,”2021/7/8″,15200,15280,14990,15020,4927900],
[1570,”2021/7/9″,14620,14880,14240,14850,15201967],
講義用のフォルダをまとめて作成する[python]
#フォルダーを再帰的に作りたい
いままでは新学期になるたびに講義ファイルをまとめるフォルダーを作っておりました。
大した労力じゃないかもしれないけど、地味に大変だから何とかしたい!
#コード
フォルダーを作りたい場所で動かすと出来上がり。
はじめに一番上になるフォルダーの名前を決めることができます。
曜日や時限数は調整してみてください。“`python:foldermaker.py
import osweek = (‘1_Monday’, ‘2_Tuesday’, ‘3_Wednesday’, ‘4_Thursday’, ‘5_Fliday’)
period = (‘1’, ‘2’, ‘3’, ‘4’, ‘5’)title = input(‘input folder name…’)
for w in week:
for p in period:
os.makedirs(title + ‘/’ + w + ‘/’ + p)
“`
#参考https://note.nkmk.me/python-os-mkdir-makedirs/
画像キャプション生成モデル 「CATR」の出力文を入力画像に埋込んでファイル出力するように書き換えてみた
__[前回の記事](https://qiita.com/electronics_diy721/items/10ce68bf25ea239b2395)__では、CATRモデルの実装コードを、githubから落として、動作検証を行ってみました。
###( 前回の記事 )
– __[Transformerベースの画像キャプション生成モデル CATRを動かしてみた](https://qiita.com/electronics_diy721/items/10ce68bf25ea239b2395)__
今回は、git cloneした推論工程の実行ファイル __*predict.py*__を改修して、出力されたキャプション文を入力画像に文字列埋込して、結果をファイル保存するように書き換えてみました。
なお、キャプション文が40文字を超える場合は、改行して、改行した結果を入力画像に埋め込むようにしました。4行目以降は、埋め込まずに捨てることにしました。
####( 入力ファイル )
![test008.jpeg](https://qiita-image-store.s3.ap-north
PythonでAzure Blob Storageから画像をメモリに直接読み込む
Blobに配置した画像をNotebooksで触る必要があったので備忘録として。
“`python
import os
import matplotlib.pyplot as plt
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
from PIL import Image
from io import BytesIOcontainer_name = “container”
target_image_folder = “hoge/fuga”STORAGE_ACCOUNT_CONNECTION_STRING = “”
blob_service_client = BlobServiceClient.from_connection_string(STORAGE_ACCOUNT_CONNECTION_STRING)
with blob_service_client:
container_client = blob_service_clien
【競プロ典型90問】002の解説(python)
## 概要
[競プロ典型90問](https://atcoder.jp/contests/typical90)の解説記事です。
解説の画像を見ても分からない(~~理解力が足りない~~)ことが多々あったので、後で解き直した際に確認できるようまとめました。※順次、全ての問題の解説記事を挙げていく予定です。
※★5以上の問題は難易度的に後回しにしているため、投稿時期が遅くなる可能性があります。(~~代わりに丁寧に解説してくれる方いたらぜひお願いします~~)## [問題002-Encyclopedia of Parentheses](https://atcoder.jp/contests/typical90/tasks/typical90_b)
### 問題概要
長さNの「正しい」カッコ列を辞書順で出力する。
正しいとは、
– ()のペアが揃っている。
– 右から見て行った時に、”(“より”)”の方が多くなってはいけない
– ()以外の文字列が含まれてはいけない### 制約
“`math
1 <= N <= 20 \\ Nは整数 ``` ### 解き方 Nが小さく、文
Optiver Realized Volatility Predict 走り書き
与えられた10分間の観測データを使い、10分後のRealized Volatilityを予測するコンペ
Optiver Realized Volatility Predictにて知っておくべき周辺知識をまとめた。
## Realized Volatilityとは
__ボラティリティの推定値の一種__
ボラティリティは資産価格の変動度合いを表し、この指標が高い商品は高リスクと判定できる。
Realized Volatilityは、高頻度データによる株価リターンを使用し、日時換算したボラティリティを指す。
ごちゃごちゃ書いているが、要は日中に観測されたリターンの2乗を観測回数分足して、
日時換算したものがRealized Volatility
定義式はt日の観測回数i回のRVが下記式
$$
RV_t = \sum_{i=1}^{n}r^2_{-1+i/n}\quad
$$
$\lim_{n \to \infty}RV_t$が一日単位で観測された累積ボラティリティと 一致していることが示されているので、
観測回数を増やせば増やすほど真のボラティリティに近づく。
なお、一
Transformerベースの画像キャプション生成モデル CATRを動かしてみた
#動かしたコード
__*CAption TRansformer*のPyTorch実装__がありましたので、git cloneして動かしてみた。
– [CPTR: FULL TRANSFORMER NETWORK FOR IMAGE CAPTIONING](https://arxiv.org/pdf/2101.10804.pdf)
– [GitHub saahiluppal / catr](https://github.com/saahiluppal/catr.git)
#動かしてみた
git cloneすると、学習済みの__*pre-trained model*__が同梱されています・
今回は、学習済みモデルに、画像ファイルを食わせて、その画像ファイルに対応する説明文(キャップション文)を出力させてみます。
学習済みモデルを使うモデル推論工程は、__predict.py*__を使います。
食わせる画像ファイルは、コマンドライン引数で、画像のパスを渡します。“`bash:Terminal
electron@diynoMacBook-Pro catr % cat pr
完全自作プラネタリウムを作る
#はじめに
高校生という生き物はいつだって欲望に忠実である。
「星が見たい!」と言い出したのはいつだったか。
よーしわかった。プラネタリウムを作ろう。#目標
高校生が可能な範囲内でそれなりに良いものを作る。
作るものはプラネタリウムのドームと,恒星球と呼ばれる星の投影機。#準備するもの
####ドーム
* 段ボール
* ロール紙
* ガムテープ####恒星球
* PC(winでもmacでも,pythonとblenderが使えればよい)
* 厚紙
* 針
* のり
* 豆電球#制作手順
####ドーム
今回はJAXAの[ダンボールドームプロジェクト](https://www.kaguya.jaxa.jp/ja/document/DomeProject.htm)を参考にした。
やり方はすべて書いてあるので,ここでは実際に作ってみて感じたことを書いていこうと思う。
まず,組み立てる時にはそれなりの人数が必要になってくる点。
寸法通り作るとかなりでかいものとなる。
教室に入れるために土台となるA8は半分の450mmの高さとしたが,それでも5人くらいはいないと難しい。
また,JA
Titanic終了後の壁
こんにちは。shu421という名前でkaggleに参加しています。初めに伝えておきますが、この記事は独断と偏見の塊です。あくまで私の考えにすぎないので、一つの意見として頭の片隅にでも置いていただけたら嬉しいです。
# 対象読者
・Titanicコンペでsubmissionだけはしてみたが、現行コンペの進め方がわからない方
・kaggleとは何か知っているが、進め方がわからない方# 今回お伝えすること
・Titanic終了後、初めて参加する現行コンペへの具体的な取り組み方
・メダルを持っていない人向けの具体的なコンペの進め方
・コンペのモチベーションの保ち方#目次
・結論
・軽く自己紹介
・Titanicコンペ終了後の壁
・初メダルを取るまでの軌跡
・[本題]現行コンペの進め方
・モチベーションの保ち方
・まとめ
・最後に# 結論
kaggleでメダルを取るためには、
・全ての公開ノートブックとディスカッションを読んで、アイデアを全て実装する
・時間の暴力で戦う
の2点が重要だと感じました。後ほど、詳しくお話しします。# 軽く自己紹介
現在、筑波大学の学部3年生で経営
Pythonでオリジナルのドット絵エディタを作る(1) – シンプルなドット絵エディタ
#はじめに
Blenderでモデリングを行う過程で、独自の機能を盛り込んだドット絵エディタをPythonで作りました。このドット絵エディタにはFFT機能の他に、ドット絵をそのままSVG形式でエクスポートする機能があります。 pic.twitter.com/cgJuAudnKa
— ヒサン@電子材料・デバイスbot (@Hisan_twi) July 30, 2021
このシリーズではこのドット絵エデ
pyenvでPythonのバージョンを切り替えられない場合の対処法
対処前
“`
% python –version
Python 2.7.16
“`対処方法
pyenv initを実行“`
% pyenv init# (The below instructions are intended for common
# shell setups. See the README for more guidance
# if they don’t apply and/or don’t work for you.)# Add pyenv executable to PATH and
# enable shims by adding the following
# to ~/.profile and ~/.zprofile:export PYENV_ROOT=”$HOME/.pyenv”
export PATH=”$PYENV_ROOT/bin:$PATH”
eval “$(pyenv init –path)”# Load pyenv into the shell by adding
# the following to ~
Pythonで論文用のグラフ作った話
#はじめに
私はPythonで実験データなどの操作を行っています。現在機械学習とかでも活発に使われている言語なので特に特記することもないかと思います。ライブラリが豊富であり、記述が簡単で精度さえ注意すれば素晴らしい言語だと思っています。ちなみに研究室ではMathematicaが使われています。ただ、容量がデカく、ライセンスの関係で自宅で作業ができず、買おうと思うとAd○beレベルで高いので、よほどのことがない限り使ってないです。教授は「べつに使いたい言語つかったらいいよ〜」と言っていたので問題はない(はず)です。
そんな感じの理由で全ての計算をPythonで行っているのですが、一点だけ問題があり論文で使用できるグラフのテンプレが存在しなかったです。なので自分でイチからプログラムを作ったというのが経緯です。
#グラフに必要な条件
そもそもグラフで何が求められているのかを考えます。それは物理量の関係性を鮮明にすることが目的です。それを実現するためには下のようなものを意識する必要があると考えています。
* 単位やパラメーターの意味を示す
* 目盛りも読みやすいような工夫をしておく
Z3Py 例題 ビンパッキング問題
# 問題
4人で8個の荷物を運ぶとする. 各荷物の重さは 3.3kg, 6.1kg, 5.8kg, 4.1kg, 5.0kg, 2.1kg, 6.0kg, 6.4kg である (合計は 38.8kg). 各自の運ぶ荷物の重さの合計が 11kg 以下になるように荷物を割り当てることはできるか?([Wikipedia:ビンパッキング問題](http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%B3%E3%83%91%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E5%95%8F%E9%A1%8C))# 回答
“`example_bin_packing.py
from z3 import *loads = [3.3, 6.1, 5.8, 4.1, 5.0, 2.1, 6.0, 6.4]
X = [[Int(“x_%s_%s” % (i, j)) for j in range(len(loads))] for i in range(4)]s = Solver()
s.add([And(0 <= X[i][j], X[
Kaggle Python Tutorial Exercise: Loops and List Comprehensions
https://www.kaggle.com/learn/python
の4つめ
Loops and List Comprehensions
の最後の問題。kaggleのdiscordで質問があったので作ってみた。
##通常
“`python:MonteCarlo.py
import randomdef play_slot_machine():
r = random.random()
if r < .005: return 100 elif r < .05: return 5 elif r < .25: return 1.5 else: return 0 def estimate_average_slot_payout(n_runs): """Run the slot machine n_runs times and return the average net profit per run. Example calls (note that ret
FastAPIのOpenAPIバージョンをpyproject.tomlから取得する
# 課題
FastAPIでAPIサーバーを作っている。
FastAPIは関数の引数や戻り値の型情報を読み取ってOpenAPI(旧Swagger)形式のドキュメントを作ってくれる。
OpenAPIには今のAPIのバージョンを設定するフィールドがあり、ここでAPIのバージョンを管理することができる。
もちろんハードコーディングで管理してもいいのだが、今回はパッケージマネージャーにPoetryを使っているので、 `pyproject.toml` 内の `[tools.poetry]` セクションの `version` を動的に読み取るようにすると綺麗に管理できるような気がした。“`pyproject.toml
[tool.poetry]
name = “my_api_server” # <- ついでにこれも表示させたい version = "12.8.9" # <- これをOpenAPIドキュメントに表示させたい description = "私のAPIサーバーです。" # <- ついでにこれも表示させたい authors = ["que9
pythonで周期表の語呂合わせなどの音声を発生させる簡単な方法
# 背景
化学の周期表の語呂合わせなどを暗記しようと思うと、人前で喋るのは憚れるタイプの語呂合わせが多いこともある。そんなときや、何か喋る内容を音声に保存したい場合など、python で簡単にパソコンに喋らせる方法を紹介する。
やり方はたくさんあって、ここでは、mac の say というコマンドラインのツールを使って、読み込ませたテキストファイルを音声化するだけです。
## 声出しスクリプトの御本尊
“` python:speak.py
import sys, os
args = sys.argv
if len(args) == 2:
pass
else:
print(“need to specify a file”)
sys.exit()f = open(args[1])
all = []for i, one in enumerate(f):
one = one.strip().split()
mytext = ” “.join(one)
os.system(“say ” + mytext)
all.append(mytext)
“`だけで
【Python】「2つのエクセルシートを見比べて、単価を拾い、記入していた手動処理」を完全自動化した話。
1.状況説明/やりたい事
下記の様な顧客別の売上管理シートが月初に大量に経理から流れてきます。
売上管理シートは、顧客別に別csvになっており、下記csvシートの名称は、”LDX73219_report_202107.csv”です。
LDXと5桁の数字は顧客番号となっております。<LDX73219_report_202107.csv>
![1ab.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/0b9009b3-ccb7-164b-89e8-a12a5b074086.jpeg)つまり、こうしたい。
![1xy.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/cb29a957-db82-5e5a-523e-63075559c9fc.jpeg)2.今までのやり方。
下記の価格元帳(pricelist.xlsx)を開いて、単価を目視で探した上で、”LDX73219_report_20
Pythonでタスクマネージャーっぽいのを作った(Windows限定)
# はじめに
普段からWindowsのノートPCを使ってる自分ですが、開発者用プログラムに入っているおかげか、最近Windows11にアップグレードしました。
Windows11になると、タスクバーを右クリックしても「タスクバーの設定」しか表示されなくなってしまい、タスクマネージャーの起動がめんどくさくなってしまいました。
~~(Win+R->taskmgrってやってもいいんですが、なんか面倒な気分になるので無しで)~~そんなわけで、Pythonで常駐できるタスクマネージャーっぽいのを作ろうぜ!って感じで、2日くらいで作ってみました
# 簡潔に
– Windows限定
– 通常のタスクマネージャーの機能に加えて、CPUの温度、電力、クロック周波数も
BOXのPythonSDKを使うとフォルダ内リスト取得APIのlimitが効かない
頼まれてBOX APIを使った簡単なプログラムを作ったんですが、そのときに???な事態が起こったんでメモ。
## 起こったこと
PythonSDKを使って、指定フォルダの中身を一覧化してexcel出力したい。
なので、↓このAPIを使うことにした。
https://ja.developer.box.com/reference/get-folders-id-items/“`
from boxsdk import OAuth2, Client
import pandas as pd
import numpyCLIENT_ID = ‘xxxxxxxxxxxxxxxxxxxxxxxx’
CLIENT_SECRET = ‘yyyyyyyyyyyyyyyyyyyyyyyyy’access_token = ‘aaaaaaaaaaaaaaaaaaaaa’ #あらかじめ取得しておいたtoken
oauth = OAuth2(
client_id = CLIENT_ID,
client_secret = CLIENT_SECRET,
access_token=ac