- 1. (その2)A→株式会社アンペア、E→株式会社エナジーといった入力文字から会社名を返す初歩的なPythonプログラム
- 2. Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
- 3. Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
- 4. 4GB以上のzipファイルをPythonで解凍する
- 5. OpenCVとYOLOv5を使って動画切り抜きをしてみる
- 6. XGBoostはpickleでなくJSONで保存せよ 備忘録
- 7. SQLAlchemy 2.0 のMovedIn20Warningを多少取り除く
- 8. pythonで統計学をマスターしよう!
- 9. Colab上で動かすStable Diffusionをpickleにして再利用しやすくしてみた
- 10. gensimのトピックモデルのget_document_topicsで再現性のある結果を得る
- 11. SPSS ModelerのRFM集計ノードを、pythonに書き換える
- 12. TwitterのbotをAWS Lightsailで稼働させてみる【Python】
- 13. D社のコーディングテストを私の勝手に解いてみました!
- 14. CNNを使って構造式(画像)からlogpを予測する
- 15. discord.py v2.0の自動変換を使ってみる
- 16. OpenCVとpyzbarを使ったQRコード読み取りアプリをPyinstallerでexe化する
- 17. Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
- 18. MkDocs PDFとして出力する
- 19. wiringpiを使ってデイジーチェーン用のデータ送信する際にハマったこと
- 20. python feature_importanceが高い値のみ取り出した pandas を作成する関数
(その2)A→株式会社アンペア、E→株式会社エナジーといった入力文字から会社名を返す初歩的なPythonプログラム
前回に作成した記事に対して「PySimpleGUIというライブラリが使いやすい」というコメントを頂いた。
初心者なのでこういったライブラリの紹介は本当にありがたいです。https://qiita.com/tachibana-mayumi/items/fe9f577a01e568bf24bd
今回はPySimpleGUIを使って以下のプログラムを作ってみた。
* 立花真由美→a001、立花理香→a002、みたいな感じで社員番号を返すもの
* 日本→こんにちは、アメリカ→Hello、ハワイ→alohaみたいな感じで地域名を入れると挨拶を返すもの
* A→株式会社アンペア、E→株式会社エナジーといった感じでアルファベットから取引先を返すもの## ハワイ→alohaと返すようなプログラム(PySimpleGUI版)
日本→こんにちは、アメリカ→Hello、ハワイ→alohaと返すようなプログラム。
今回は合わせて社員番号から社員を返すプログラムも作ってみた。
確かにPySimpleGUIはコマンドがわかりやすかったり、コードがシンプルになってとてもいい感じ。~~~aloha.py
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
Python,Ruby,PHP,Java,JavaScript,Perlのwhile文の比較
# Python
https://qiita.com/Morio/items/10d33f6dbb0845ae5038
# Ruby
https://qiita.com/Hashimoto-Noriaki/items/f406bcfb00e79e3937d0
# PHP
https://qiita.com/miriwo/items/2c2aa77d5de66c074ec5
# Java
https://qiita.com/takahirocook/items/05bfe37bb4ba64f3a78e
# JavaScript
https://qiita.com/kaz7991/items/7f98cc17c4df9ab6a009
# Perl
https://perlzemi.com/
Exchange Onlineの基本認証廃止で普通に困ってる人のためのエントリ
# はじめに
基本認証を使っている方は2022年10月1日からExchange Onlineに接続できなくなります。
ある日会社に行ったら、Xデー迄あと1か月ないので至急対処してくれとお達しが来ていました。
現実を受け止めきれなかったのですが、公式声明文が出ていたので、どうやら本当のようです。https://docs.microsoft.com/ja-jp/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online
ということで、この記事は次のような人に向けて書かれています。
・OfficeのメールボックスをIDPWで開いてなんやかんやする自家製アプリを書いている。
・2022年10月1日までにOAuth2.0認証に切り替えないといけないし、何ならもう10月1日になった
・正直何からやっていいか不明だし何で検索すればいいかよくわからない
・こんなことをやっている場合ではないし、とにかく悲しい# 要点
## Azure ADにアプリを登録
4GB以上のzipファイルをPythonで解凍する
4GB以上のファイルをunzipコマンドで解凍しようとしたらErrorになった。
どうも4GB以上のファイルはunzipコマンドでは解凍できない模様。。私はpython推し()なのでpythonで解凍して解決しました。
◆python version
“`$ python3 -V“`
→ Python 3.10.5◆コード
“`run_unzip.py
import sys, shutil
shutil.unpack_archive(sys.argv[1], sys.argv[2])
“`
◆実行
“`$ python3 run_unzip.py (解凍したいファイル) (解凍先のファイル)“`sys.argv[n]で引数として解凍したいファイル、解凍先のファイル(存在しない場合は生成される)を指定。
shutil.unpack_archiveでzipファイルを解凍する。例)
“`$ python3 run_unzip.py hoge.zip output“`以上でした!
OpenCVとYOLOv5を使って動画切り抜きをしてみる
## はじめに
自動で動画切り抜きする方法を、クラウドを使わずにローカル環境で試してみた。
OpenCVと検知能力もそこそこ優秀で比較的処理が軽いと言われる`YOLOv5`を使って作ってみたので、メモとして残しておく。## 実施環境
■ PCスペック
CPU:Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz 3.20 GHz
メモリ:8.00 GB■ OS
Windows 10 Pro■ 各種SW&パッケージのバージョン(今回インストールするもの含む)
python 3.9.5
pip 21.3.1
opencv-python 4.5.4.60
YOLOv5## メモ内容
①環境準備の流れと、②Pythonコードをメモとして残す。### ① 環境準備
色々なパッケージが必要となりローカル環境が散らかりそうだったため、自分は仮想環境上で環境を構築している。(手順は下記を参照)https://qiita.com/smiler5617/items/2abce37f9684394562e3
https://qiita
XGBoostはpickleでなくJSONで保存せよ 備忘録
# 概要
GPU付きPCでモデルのTrainingを行いpredictはGPUなし(つまりCPUのみ)のPCで行う運用を想定する。
そのときのXGBoostモデルの保存方法について備忘録を残す。– 実施時期: 2022年9月
– Python: conda 3.8.13
– XGBoost: py-xgboost, py-xgboost-gpu 1.6.1## 問題
XGBoostはLightGBMに比べTrainingが遅いことは有名だ。GPUを使えばCPUよりも体感で4~5倍高速になり十分な速さだが、どのPCにもGPUが乗っているわけではない。
しかしCPUであってもPredictはLightGBMより速いのでdeployを考えるとどうしてもXGBoostを使いたくなる。老舗なため情報が豊富なこともありがたい。
ただモデル保存時、いつもの便利なpickleで保存してしまうと運用時に困ったことになってしまうので対策を残す。## Training at PC with GPU
XGBoostをGPUでTrainingするときは下記のようなコードとなる。
ここのポイントはモデ
SQLAlchemy 2.0 のMovedIn20Warningを多少取り除く
## 概要
数年前に作ったコードを久しぶりに動かしたら、警告が出たので少しずつ直してみた。
移行に関する修正方法は [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) に載っているが、単純置換できなかったり、修正方法に少し悩んだコードを載せる。* (1.4のコードを捨てて)本気で2.0に移行するのでなく、2.0 の衝撃に備える程度ぐらいのモチベーションとなる
### 環境
* SQLAlchemy(Linux): 1.4.17
### コード1: import の警告
#### 修正前
“`python
from sqlalchemy.ext.declarative import declarative_base # here# …
Base = declarative_base()
“`“`
MovedIn20Warning: The “declarative_base()“ function is now a
pythonで統計学をマスターしよう!
# 統計検定をpythonにやってもらおう#1
## 初めに
データ解析とかビックデータって近未来間あって学生の僕にはかっこよく夢のある分野なんです。ですよね?笑
でも学ぶとなるとプログラミングも統計学なんかの数学知識も学ばなきゃいけないし独学だとくじけることもしばしば、、
そこで今回は、統計学の中でも基本となる仮説検定の理解を深めるために簡単な正規分布から、t検定あたりまでの基本をpythonによって行ってみた。そう、同時に学んでやろうって想定読者としてはpythonは文法程度、統計学も大学でかじったよくらいの理解度の初学者で、データサイエンスなどを触れてみたい学生等のちょっとしたヒントになればうれしいです、、!
前提として、pythonの使える環境を想定していますが環境構築なんかの話は僕よりわかりやすく説明してくれている記事がたくさんあるので調べてみてください。– 目次
1,グラフの作り方
2,正規分布の作成とデータ比較
3,仮説検定の基本(SciPy)
4,t分布の作り方
5,まとめ、次回について## 1グラフの作り方
ここでは、統計学をpythonで学んでいく
Colab上で動かすStable Diffusionをpickleにして再利用しやすくしてみた
# はじめに
こんにちは!こんばんわ![コマピ](https://twitter.com/comapi5)と申します!以前Google ColaboratoryでStable Diffusionを使用する記事を投稿しました。
https://qiita.com/comapi/items/c178167d04071f19717e
しかし、たくさん画像生成を試して遊びたいのですが、インスタンスの起動から始めた際に再度学習済みの重みのダウンロードからしなくてはなりません。
まぁダウンロードは3分くらいで終わるので待てばいいのですが、地味にストレスだったのでpickle化して保存しちゃえと考えたわけです。
# モデル準備
以前の記事と基本同じコードなのでまとめて記載します。GPUの設定も忘れずに。
“`python
!pip install –upgrade diffusers
!pip install transformersfrom diffusers import StableDiffusionPipeline
ACCESS_TOKEN = “hf_pvYFk
gensimのトピックモデルのget_document_topicsで再現性のある結果を得る
## 環境
– Python 3.7.13
– gensim 3.6.0
– Google Colaboratoryにて実行## 事象
[gensimのトピックモデルのサンプルコード](https://radimrehurek.com/gensim/models/ldamodel.html)を参考に、適当なモデルを作ってみます。
“`python
from gensim.corpora.dictionary import Dictionary
from gensim.models import LdaModeltexts = [
[‘computer’, ‘time’, ‘graph’],
[‘survey’, ‘response’, ‘eps’],
[‘human’, ‘system’, ‘computer’]
]dictionary = Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
model = LdaModel(corpus, num_to
SPSS ModelerのRFM集計ノードを、pythonに書き換える
SPSS ModelerでRFM集計を行うノードをPythonで書き換えてみます。
RFM集計ノードは以下の記事で解説されていますが、購買取引データから顧客価値を示すRFMの値を算出するノードとなります。
[SPSS Modeler ノードリファレンス 2-13 RFM集計](https://qiita.com/416nishimaki/items/8c7cd38fb966b4ced05a)– Recency : 最新の購入日から経過した日数
– Frequency : 購入回数
– Monetary : 購入金額の合計![スクリーンショット 2022-06-23 19.48.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/811188/82b7a37a-61b6-6043-fb5f-26557939f2b7.png)
SPSS Modelerでは下記の設定でRFMの集計を行います。
– Recencyの基準日を2019/12/31とする
– 2000以下の値を持つレコードを破棄
– 2
TwitterのbotをAWS Lightsailで稼働させてみる【Python】
# やりたいこと
文章を自動生成するTwitterのbotを自作して公開したい。
自動生成するプログラムとTwitterに投稿するプログラムは前回までで出来たので、今回はAWSを使って公開するところまでをやる。https://qiita.com/fujii_273/items/bed7bf7b34fa0bb515c9
https://qiita.com/fujii_273/items/9bb05b3dfcd79d391ff7
# 環境
Windowsで開発したプログラムをAWSに上げる。## 開発環境
・Windows 10
・Python 3.10.7## 本番環境
・AWS Lightsail(Amazon Linux 2)
・Python 3.7.10# やったこと
1.AWSのアカウント作成
2.AWS Lightsailのインスタンス作成
3.サーバに各種インストール
4.LightsailサーバーへSFTP接続
5.cronの設定## 1.AWSのアカウント作成
まず、botを載せるサーバを用意する。
今回は勉強も兼ねてAWSにします。
アカウントの
D社のコーディングテストを私の勝手に解いてみました!
おはようございます!:sunrise_over_mountains:
私が住んでいるところは12日まで休みですが、13日にD社のコーディングテストがあるので…。
うーん…。無理矢理パソコンの前に座りました。:disappointed_relieved:
D社もコーディングテストの模試を公開しているので、そのうちの一つを解いてみたいと思います。# 問題
正方形の大きさの格子状の庭に、咲いた花または咲いていない花を植えました。
この庭の花が全部咲くのに何日かかるのか知りたいです。ある日に咲いた花の前後左右の4方向にある花は、次の日に花を咲かせます。現在の庭園の状態を盛り込んだ2次元リスト`garden`が与えられた時、すべての花が咲くのに何日かかるのか`return`するように`solution`関数を作成してください。
# 説明
現在の庭園の状態を盛り込んだ2次元リスト`garden`が`solution`関数のParameterとして与えられます。
– 庭園の一辺の長さは2以上100以下です。
– 庭園の状態を盛り込んだ2次元リスト`garden`の元素は`0`または
CNNを使って構造式(画像)からlogpを予測する
# 概要
オクタノール・水分配係数(logp)は疎水性の指標となる値です。疎水性は分子構造により変化するので、構造式をニューラルネットワークのインプットとすれば予測することが可能だと考えました。
コードはgithubに公開しています。 → https://github.com/hiroyakubo/image-logp# 開発環境
– Windows11 WSL2 Ubuntu20.04
– python 3.6.15# 環境構築
pythonライブラリをインストールするだけです。
“`bash
pip install -r requirements.txt
“`# コード解説
### データセット
まず分子のSMILES一覧をCSVファイルとして用意しました。このSMILES記法で表現された分子をrdkitを使って画像に変換していきます。
“`python
def create_image(self, size:tuple=(224, 224)) -> None:
“””Create image from smiles
Par
discord.py v2.0の自動変換を使ってみる
久しぶりにdiscord botを作ってみたら面白い機能が追加されていたのでメモ書き。
discord.pyのVer2.0から追加された新機能の一部
– `app_commands.choices`
– `app_commands.autocomplete`この2つはコマンドの引数を設定する際に特定の文字列の中からユーザーに入力して欲しい時に候補を表示することができて便利なのでよく使っています。
今回は候補にしたい配列がほとんどカタカナで構成されているという前提で、
ひらがな→カタカナ変換をして配列の中から部分一位した文字列を返すコードを載せています。“`python
import discord
from discord import app_commands
from discord.ext import commandsintents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix = ‘.’,intents=intents
OpenCVとpyzbarを使ったQRコード読み取りアプリをPyinstallerでexe化する
# はじめに
ふと、「カメラの画角の中にQRコードが映ったときに、その時刻と内容をロギングできるアプリ」を、そのへんのWindowsPCで実行させといて現場に放り投げておきたいという衝動にかられたので作りました。# ライブラリの準備
当方、pipenvで仮想環境を切っているのでとりあえず以下で設定
“`shell
pipenv –python 3
pipenv install pyinstaller numpy pyzbar opencv-python~=4.5.3.56
“`
※現段階では、opencv-pythonのバージョンを上述に揃えないとうまく行かないそうです、1ハマりhttps://stackoverflow.com/questions/69855356/recursion-is-detected-during-loading-of-cv2-binary-extensions/70109102#70109102
# コード
以下を参考にしました
https://laboratory.kazuuu.net/creating-a-webcam-qr-code-s
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
Python,Ruby,PHP,Java,JavaScript,Perlの例外処理の比較
# Python
https://qiita.com/imuimu/items/7f27d156dd0f6507803b
# Ruby
https://qiita.com/k-penguin-sato/items/1a6c8096effccb19565a
# PHP
https://qiita.com/wakahara3/items/bcadef53367097765c82
# Java
https://qiita.com/ts7i/items/d7f6c1cd5a14e55943d4
# JavaScript
https://qiita.com/andota05/items/fc1e340642be42ca47c0
# Perl
https://perlzemi.com/blog/201
MkDocs PDFとして出力する
[mkdocs-with-pdf](https://github.com/orzih/mkdocs-with-pdf)を使用して、ドキュメントをPDFとして出力してみる。
サイトのほうは[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)を使用。
https://try0.github.io/mkdocs-example/example-site/site/mkdocs-with-pdf.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92451/4bada3f6-6781-aed1-0fb9-1ad971ed3563.png)
このドキュメントをベースに、こんなpdfが出力可能
https://try0.github.io/mkdocs-example/example-site/site/mkdocs-with-pdf-output.html
![image.png](https:/
wiringpiを使ってデイジーチェーン用のデータ送信する際にハマったこと
デイジーチェーンで繋いでいたモータードライバー(L6470)にデータを送るときに、
wiringpiを用いたときの書き方がわからずにハマってました。RPi.GPIOでCSのpinをLOW → データ送信 → CSのpinをHIGH の方法もありますが、
WiringPiを使うパターンだと記述量が少なくて済む。## 結論:シフトする数に合わせてstruct.pack()の引数を整える
“`
import wiringpi as wp
import structSPI_CH = 0
SPI_HZ = 100000# SPI データ送信
def send(SPI_CH, byte_ary_1, byte_ary_2):
# バイト配列には[0x10, 0xc0, 0x15], [0x10, 0x00, 0x21]などが来るものと仮定します
# 実際のコードではバイト配列の中の数が違うときは事前に0x00で埋めて配列数を最大数に合わせていますfor i in range(byte_len):
# デイジーチェーンの時は各モーター
python feature_importanceが高い値のみ取り出した pandas を作成する関数
## 機械学習(LightGBM)で学習した際の importance 高い値を取り出す
“`
import lightgbm as lgb# データセットを作成
train = lgb.Dataset(X_train, label=y_train)
valid = lgb.Dataset(X_val, label=y_val)# モデルのパラメータを設定
params = {
‘reg_lambda’ : 0.2,
‘objective’: ‘multiclass’,
‘metric’: ‘multi_logloss’,
‘num_class’: 2,
‘reg_alpha’: 0.1,
‘min_data_leaf’: 100,
‘learning_rate’: 0.025,
# ‘feature_fraction’: 0.8,
# ‘bagging_fraction’: 0.8
}
# モデルを訓練
model = lgb.train(params,
trai