- 1. プログラムの動作確認
- 2. cronの設定をする。
- 2.0.1. Jupyter NotebookのSnippetを作成してライブラリのimportを楽にする試み(Jupyter @ Dockerでの方法)
- 2.0.2. アルゴリズム~sort編~ python
- 2.0.3. zip(*sorted(zip(list1, list2)))の意味がわからなかった話
- 2.0.4. 【Python】venv環境を起動しようとするもエラーが発生する
- 2.0.5. Pythonプログラムで野村證券のIPOブックビルディング申込を自動化しよう!
- 2.0.6. PythonのPingPongゲームを解説してみた
- 2.0.7. SeleniumとEdgeDriverを使ってMicrosoft Edgeのダウンロードフォルダを指定する(with Python)
- 2.0.8. PythonプログラムでSBI証券のIPOブックビルディング申込を自動化しよう!
- 2.0.9. pyenvでPythonのversionが切り替わらない!
- 2.0.10. シェルコマンドをPythonから実行して結果をリアルタイムに標準出力に出す方法
- 2.0.11. Python で非 async な IO 処理を並列したい場合
- 2.0.12. Teamsのステータスを自動で変更する
- 2.0.13. ぼくのかんがえたさいきょうのGithub Actionsで複数のCloudFormationファイルをCI/CDする方法
- 2.0.14. GoogleColabでweb上のGIFを画像に分解して保存
- 2.0.15. 簡単にWeb APIを使ってラーメン屋の情報を出そう!!
すばらしきpyautogui
# pyautoguiとは
ざっくり、「マウス操作」や「キーボード入力」を自動操作するためのモジュールという感じです。
例えば、`デスクトップに表示している画面上で特定の表示がされた時は勝手にクリックされてほしいなぁ`などと人生の中で一度は思うことがあるのではないでしょうか(身近な例で言うと、僕は料理系の動画が好きなので参考程度に観ている最中で動画と一緒に進めていると、広告のスキップなどで自動にしてくれと思うことが多々あります。)
今回は僕の悩みを自動的な操作で解決してくれるのが、`pyautogui`になります。
## 実際に動かしてみる
実行環境については以下の通りです“`
macbook air
Python 3.9.6
PyAutoGUI==0.9.53
opencv-python==4.5.5.64
Pillow==9.0.1
“`などで、とりあえずどれにおいても再試版をインストールしたつもりです。
`python3.9`についてはちょっと不服(個人的には3.8が安定しているのではないかと思っています。あんまり調べていないので確証はないですが。。。)
【AtCoder解説】PythonでABC245のA,B,C,D問題を制する!
**ABC245**の**A,B,C,D問題**を、**Python3**でなるべく丁寧に解説していきます。
ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。
– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増えるご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!
**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM**や*
【初心者ロードマップ 】機械学習完全独学奮闘記 0巻 上
# はじめに
なぜこれを書こうと思ったのか、それは**今までプログラミングに挫折し続けてきたから**です。
独学も継続も苦手な自分への最後のチャンスだと思って書き続けます。
同じ初心者の方達と教え、教えられ合いながら頑張って行けたらなと思います。# 経歴と機械学習を始めたきっかけ
地方の薬学生(6年)です。24歳です。
2021年に休学して東京のSaaS企業で1年間ビジネスのインターンとして働かせてもらっていました。
そこで**データの持つ可能性とプロダクトの持つインパクト**に感動しました。
データがなければ今の時代決断は下せませんし、磨き抜かれたビジネスアイデアよりもプロトタイプに価値があります。
機械学習に興味を持ったのは前者でデータというものの性質や面白さを肌で実感したいと思ったからです。# 現状
スキルレベルはプログラミング(HTML,CSS,JS)かじったぐらいで、模写もまだできないぐらいです。
Progateのレベル上げに勤しんでました。(Lv181で中断)
Pythonは勉強始めて1ヶ月ぐらいです。
かなり効率の悪いやり方をした気がするので、参考にして(しないで
[tensorflow]量子化パラメータの確認
## 量子化とは
モデルのパラメータや演算結果を浮動小数点(float32など)から固定小数点(int8など)に変換することです。
モデルサイズが削減できる、組み込みデバイスなど浮動小数点演算器を持たないデバイスでも高速に推論できる、などのメリットがあります。通常のkerasモデルはパラメータを浮動小数点型で保持しており、各レイヤーの入出力も浮動小数点型です。
“`math
output(float32) = input(float32) * weight(float32) + bias(float32)
“`一方、量子化モデルではパラメータを固定小数点型で保持しており、各オペレータの入出力も固定小数点型になります。
“`math
output(int8) = input(int8) * weight(int8) + bias(int32)
“`## kerasモデルのパラメータ型の確認
kerasモデルのパラメータのデータ型は以下の変数で確認できます。“`python
from keras.applications.resnet import ResNet
ラズパイでcronを使う
プログラムの動作確認
1. 多分エディタでコードを書いていると思います。エディタ上で正しく動作するかまずは確認してください。
1. 次にターミナル上で動作するか確認します。hoge.pyを動作させたい場合は、
`python3 /home/pi/Document/hoge.py` と記述します。
**python3を頭に書いて絶対パスで指定**します。エラーが出た場合は修正してください。もしも権限が付与されていません。と表示された場合は
`chmod 777 /home/pi/Document/hoge.py`と記述しします。読込、書込、実行のフル権限を付与します。cronの設定をする。
まずはログを見れるようにしましょう。
#cron.* の「#」を消しましょう~~~Terminal.log
$ sudo nano /etc/rsyslog.conf
_____________________________
###############
#### RULES ####
################
# First some
Jupyter NotebookのSnippetを作成してライブラリのimportを楽にする試み(Jupyter @ Dockerでの方法)
日頃からJupyter Notebookを活用しています。GPU搭載マシーン(Linux)上でDockerを実行してJupyter Notebook(Tensor Flow Notebook)のコンテナを立てて利用しています。Notebook利用時にimportするライブラリはいつも似通っており、毎度毎度記載するのが煩雑であり、面倒くさい行程と感じていました。そこで、Notebookのテンプレート(Snippet)を設定して、import文の記載を楽にする試みをやってみることにしました。Jupyterにインターフェースが似ているGoogle Colaboratoryには設定メニューからSnippetの設定が可能ですが、Jupyterには専用のextensionをインストールする必要が有ります。本記事ではJupyter @ Docker環境を対象にしています。筆者が設定時に情報を探しましたが、Jupyter @ Dockerの情報は見つかりませんでした。。。 :scream: 同様の環境構築を考えておられている方のお役に立てれば幸いです。
# Jupyter Nbextensions
アルゴリズム~sort編~ python
**Bogoソート**
平均的な計算時間はO((n+1)!)となっています。
非常に効率が悪く、安定ソートではない。
bogoの由来は「bogus(偽物)」からきているらしい。配列をランダムに並び替えて配列の要素が左から順に小さくなっているかを都度調べていく。
運が良ければ早いし、最悪かなり時間がかかる。
“`python
def in_order(numbers: List[int]) -> bool:
return all(numbers[i] <= numbers[i + 1] for i in range(len(numbers) - 1)) def bogo_sort(numbers: List[int]) -> List[int]:
while not in_order(numbers):
random.shuffle(numbers)
return numbersnums = [random.randint(0, 1000) for _ in range(10)]
print(bogo_sort(nums))
“`
zip(*sorted(zip(list1, list2)))の意味がわからなかった話
# はじめに:zip(*sorted(zip(list1, list2)))が何やってるか分からなかった。
– 202203 現在、開催中の Kaggle competition「h-and-m-personalized-fashion-recommendations」に参加中。
– コンペ内の Notebook を読んでいる際に、`zip(*sorted(zip(list1, list2)))`の意味がよく分からなかった。
– 備忘録として残しておきます。# 理解できなかったコード
実際に理解できなかったコードは以下。
“`python
_, popular_items = zip(*sorted(zip(popular_items_group, popular_items_group.keys()))[::-1])
”’
ここで、すでに生成済みの変数の意味合いは以下。
——————-
popular_items_group:pd.Seriesオブジェクト。indexは各アイテムのユニークなid, valueは各アイテムの人気度合いを表す指標。
【Python】venv環境を起動しようとするもエラーが発生する
vnev環境を起動しようとするも、以下のエラーが発生した。
スペック情報
PC : MacBook Pro“`
UserPC / % source /tmp/venv1/bin/activate
source: no such file or directory: /tmp/venv1/bin/activate
“`venvのbin内にactivateがないというエラー
なぜと思い、bin内部を確認すると以下の内容が。。。“`
UserPC ~ % ls -la /tmp/venv1/bin
total 16
drwxr-xr-x 7 UserName wheel 224 3 7 11:00 .
drwxr-xr-x 4 UserName wheel 128 3 7 11:00 ..
-rwxr-xr-x 1 UserName wheel 276 3 2 11:47 django-admin
-rwxr-xr-x 1 UserName wheel 234 3 2 11:35 pip
lrwxr-xr-x 1 UserN
Pythonプログラムで野村證券のIPOブックビルディング申込を自動化しよう!
こちらの記事ではSBI證券のIPOブックビルディング申込を自動化するプログラムについて言及しました。
https://qiita.com/toranoko92114/items/994bafdb3f06ec268337今回は野村證券のIPOブックビルディング申込を自動化するプログラムを公開します!
# 本プログラムはこちらです
https://note.com/toranoko114/n/n2f66010eb284# プログラムを実行するまでの手順はこちら
PythonのPingPongゲームを解説してみた
## はじめに
最近はあまりコードをちゃんと書くことをしていないなと感じていたので、今回はYoutubeで見つけたPythonのPingPongゲームハンズオン動画の内容をもとに、構造を理解しやすいように説明を付け加えて記事にしていきたいと思います。
元ネタはこちらの「[How to create a Pong Game using Python in 6 minutes](https://www.youtube.com/watch?v=gJnUTX00Z9k)」です。各項目ごとにまとめてコード解説されているのでわかりやすかったです。動画の概要欄にもありますが、[GitHub](https://github.com/srimani-programmer/Ping-Pong-Game)上にソースが公開されています。## 作るゲームの全体像
以下のようなPingPongゲームを作ります。

# はじめに
Pythonとseleniumを使ってMicrosoft Edgeのダウンロードフォルダを指定する
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/# 準備
“`
pip install selenium
pip install msedge-selenium-tools
“`※ただし、msedge-selenium-toolsは非推奨?になっているっぽいが、よくわからないので妥協してmsedge-selenium-toolsを使う、
※selenium4に統合されたのでそっちを使えとのこと。
※日本語翻訳は機械翻訳がひどすぎるので英語版を推奨https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python
https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/capabilities-edge-
PythonプログラムでSBI証券のIPOブックビルディング申込を自動化しよう!
株式投資をしていると、やりたくなるのがIPO投資ですよね。
しかし、IPO銘柄はとても人気が高く、抽選の倍率がかなり高いんですよね・・・
その抽選に申し込む作業のことを『ブックビルディング申込』と言います。
この作業がとても面倒くさいんです!!
ブックビルディング申込がとても面倒くさい割に、IPO銘柄はとても人気が高いので当選するとは限らないという・・・かなりコスパが悪いなぁと思っていました。
そこで、ブックビルディング申込をPythonプログラムで自動化できないかと思い実装しました!
# 本プログラムはこちらです
https://note.com/toranoko114/n/n851699d591a2# プログラムを実行するまでの手順はこちら
pyenvでPythonのversionが切り替わらない!
## 状況
Homebrewを使用して、pyenvをインストールした後、
pyenvでPythonの3.6.5をインストールしました。“`:ターミナル
% python -V
Python 2.2.5% pyenv global 3.6.5
% pyenv versions
system
* 3.6.5 (set by /Users/user/.pyenv/version)% python -V
Python 2.2.5
“`
pyenvでバージョン3.6.5をglobalで設定してもバージョンは2.2.5を参照しており
pyenvを使ったPythonのバージョンを切り替えることができていません。## 対処法: シンボリックリンクの再関連付け
下記ディレクトリの中にpython-buildがあるか見る
“`:ターミナル
/usr/local/Cellar/pyenv/2.2.5/bin/
“`
もしあれば、下記コマンドで再度関連づけしてみる
“`
% brew unlink pyenv && brew link pyenv
Unlinking /us
シェルコマンドをPythonから実行して結果をリアルタイムに標準出力に出す方法
# 概要
Python の [subprocess](https://docs.python.org/ja/3.9/library/subprocess.html) を使うことでシェルコマンドを実行可能だが、実行結果をリアルタイムに標準出力へとパイプする方法(かつエラーハンドリングが正しく行われる方法)がわかりづらいのでメモしておく。
ちなみに `subprocess.run` ではリアルタイムなパイプはできなかった。
# 方法
“`py
import subprocess
import sys
import tempfiledef run_shell(cmd):
print(f’cmd: {cmd}’)
with subprocess.Popen(cmd, encoding=’UTF-8′, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as p:
for line in p.stdout:
sys.stdout.write(line)
p.wa
Python で非 async な IO 処理を並列したい場合
# 概要
Python で並列処理したい場合は [asyncio](https://docs.python.org/ja/3.9/library/asyncio.html) が便利だが、EventLoop が設定しづらかったり、IO自体が async 対応してなかったり(つまりIO終わるまで制御を握ってしまう)などの場合、純粋に並列処理したい場合がある。
その場合の方法をメモしておく。# 方法
“`py
from concurrent.futures import ThreadPoolExecutordef main():
target_file_list = [
‘file1.dat’,
‘file2.dat’,
]
# 平行して呼び出し
with ThreadPoolExecutor() as executor:
threads = [
executor.submit(
lambda: hoge.some_io_process(tar
Teamsのステータスを自動で変更する
# 困っていたこと
集中力のゴールデンタイムは誰にも邪魔されたくないのに、チャットで「ちょっといいですか?」とメンションが入ると集中できない。
Teamsのステータスを**応答不可**にすれば通知に気づかなくて済むのですが、
こまめにステータスを切り替えることを**忘れがち**。#### 朝のこの時間帯だけはなんとしても守りたい。
というわけで毎日同じ時間になれば、Teamsのステータスを変えるスクリプトを作ってみた。
## 環境
Windows10
Teams
Python3.10## まずは手作業でやってみる
### 1 Teamsを起動する
Windowsキーを押してから、「teams」と打てばこんな感じになる。

この後Enterキー叩けば起動される。(起動済みの場合は最前面にくる)
### 2 Teamsの検索に移動
ぼくのかんがえたさいきょうのGithub Actionsで複数のCloudFormationファイルをCI/CDする方法
terraformになれてたぼくがCloudFormation(CFn)で立ち上げたプロダクトにアサインされてCI/CDをしようと思った時に考えたさいきょうの方法です。
(如何せんCFn初心者なので、全然最強でない可能性ありますがご了承ください。。)### やりたかったこと
– dev(development),staging(stg),production(prd)など複数環境に手軽にデプロイ(prdはさすがに手軽すぎるのは危険なので、チェック機構は欲しい)
– 手軽にデプロイしたいが、どういう変更が入るか(`terraform`で言うところの`terraform plan`の結果)は知りたい
– 色々カスタマイズできるようにしておきたい### 実現したこと
> – 色々カスタマイズできるようにしておきたい
下記公式のactionがありましたが、リポジトリがアーカイブされており2年前を最後にメンテナンスされてないようだったので使うことを断念しました…
>AWS CloudFormation “Deploy CloudFormation Stack” Action f
GoogleColabでweb上のGIFを画像に分解して保存
# コード
GoogleColabのVM内に画像を保存する関係で、大きいサイズのファイルを扱うのは避ける。
また、インスタンスが切れてしまえば保存したデータは全てリセットされる。画像を保存するディレクトリをVM上に作成
“`python
import os
path_content = ‘/content/img/’ #VM上のディレクトリを指定
if not os.path.exists(path_content):
os.mkdir(path_content)
“`Googleの画像検索などで画像を開いたときに、”画像アドレスをコピー”したものを`url`に入れる。
“`python
import requests
from PIL import Image, ImageSequence
import io
import numpy as np
url = “” #保存したい画像の画像アドレス
fname_img = “img” #保存したい画像のファイル名
fname_imgext = “png” #保存したい画像の拡張子response = reque
簡単にWeb APIを使ってラーメン屋の情報を出そう!!
# WebAPIを使って街中のラーメン屋の情報を取得してみる。
## 環境
OS:Windows 10
言語:Python 3.10
対象WebAPl:ホットペッパーグルメリサーチAPI
### 今回使うモジュールは、
・Json,requests,random### 流れとして
1.requestsでラーメン屋の情報を取得する。
2.Jsonファイルを辞書として読み込ませる。
3.ランダムで一軒表示させる。# まず1,2をやってみる。
“`
import json
import requestsgourmet=’http://webservice.recruit.co.jp/