Python関連のことを調べてみた2022年09月10日

Python関連のことを調べてみた2022年09月10日

(その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文の比較

Qiita > プログラミング言語の比較

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 transformers

from 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 LdaModel

texts = [
[‘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 commands

intents = 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の例外処理の比較

Qiita > プログラミング言語の比較

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 struct

SPI_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

元記事を表示

OTHERカテゴリの最新記事