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

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

isfloatable() floatに変換できそうかどうか判定する関数

isfloat()が文字列に優しくなかったり
ちょっと不便な感じだったので・・。

“`python
def isfloatable(value):
if type(value) == float :
return True
elif type(value) == str or type(value) == int:
try:
float(value)
return True
except ValueError:
return False
else:
return False
“`

“`text
>>> print( isfloatable(10) )
True
>>> print( isfloatable(“10”) )
True
>>> print( isfloatable(10.1) )
True
>>> print( isfloatable(“10.1”) )
True
>>> print( isfloatab

元記事を表示

[Python] 特殊メソッドまとめ

# はじめに

個人的に特殊メソッドはわりと使うのですが、調べる度にいろんなサイトを参照している気がするので1つにまとめておきたいと思います。
特殊メソッドはそれぞれ実行される条件が違うのですが、大まかに分けると以下のようになるかと思います。

# 条件
– 初期化
– 組み込み関数
– 算術演算子
– 代数演算子
– 代入演算子
– 比較演算子
– コンテナ(リストや辞書)操作
– 属性操作
– withステートメント

# 初期化

インスタンス作成時に実行されるメソッドです。`__del__`は削除時。

“`python
class Initialize:
def __new__(cls):
# インスタンス作成時
print(“New”)
return super().__new__(cls)

def __init__(self):
# インスタンス作成時
print(‘Init’)

def __del__(self):
# del オブジェ

元記事を表示

jpholidayを用いた祝日の取り扱い

今回のお題

今回は`jpholiday`というライブラリを用いてpythonで祝日の情報を扱う方法について取り上げます。

目次

– jpholidayでできること
– 導入方法
– 利用例1〜祝日かどうかの判定
– 利用例2〜祝日名の取得
– 利用例3〜祝日の一覧取得

jpholidayでできること

jpholidayでできることは以下の通りです。

祝日かどうかの判定
引数として与えた日付が祝日かどうかを判定します。
祝日名の取得
引数として与えた日付の祝日名を返します。
振替休日であれば”xxxの日 振替休日”という表記になります。
また、祝日でない場合には”None”が返されます。
祝日の一覧取得
一定期間内の祝日を一覧取得します
期間の指定方法に関しては、年単位・月単位・日付指定それぞれのメソッドが用意されています。
独自の祝日の追加・削除
独自の祝日を追加したり削

元記事を表示

「法人番号システム Web-API」を利用するための覚書

#はじめに
法人番号のAPIを利用するための覚書です。

https://www.houjin-bangou.nta.go.jp/webapi/

#環境準備
1. 上記のサイトから利用規約を読んでアプリケーションIDの申し込みを行います。

1. 数日で英数字13桁のアプリケーションIDが、いかつい封筒で送られてきました。
![DSC_0238.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/940466/445683fa-addd-c9a7-36d4-4aef07ba8d1e.jpeg)

1. Python環境を準備します。今回はAmazon lambdaを利用しました。

#実装
作成したコードです。法人番号を元にAPIから取得した会社名や県名を表示します。

“`python:get_houjin_info.py
import json
import requests
import xml.etree.ElementTree as ET

def lambda_handler(event, c

元記事を表示

【Python初学者】Batch Normalizationがとてつもなく強力な件。(DeepLearning精度向上)

#はじめに

この記事の対象者は
**「python初学者・機械学習初学者」向け**です。
つまり私です。

#今回のケース

sklearnの`load_breast_cancer`を用いて、
別で用意したサンプルデータに対して
予測を行うための、**学習モデル**を作ります。

そのモデルに対し
**Batch Normalization**の採用の可否で
**正解率の結果が大きく変わる**ことを
見ていきたいと思います!!

(本記事では予測値は出しません。)

https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html

#実装

PyTorch Lightning でネットワーク・学習の手順を定義します。

“`
class Net(pl.LightningModule):

def __init__(self):
super().__init__()

self.bn = nn.Batch

元記事を表示

Seleniumでajax(xhr)のデータをとる

## SeleniumでajaxでリクエストしてるJSONとか取りたい
いろいろ調べるとgithubで公開してくれているページがヒット。
https://gist.github.com/lorey/079c5e178c9c9d3c30ad87df7f70491d#file-selenium_xhr_requests_via_performance_logging-py

ただ今のバージョンだとこれが少し違うくて、

https://stackoverflow.com/questions/27644615/getting-chrome-performance-and-tracing-logs

こちら参照

“` get_log.py
import json
from time import sleep

from selenium import webdriver
from selenium.webdriver import DesiredCapabilities

# make chrome log requests
capabilities = DesiredCapabiliti

元記事を表示

【保存版】Python Dash パーフェクトガイド

Dashの使い方完全保存版

基本的な使い方は他の方もたくさん投稿していると思うので、実務で使う便利なテクニックの紹介が多いです。
辞書的に使ってください。

随時更新していくので是非ストック or LGTMしてください!

## 基本

### Dashとは

超簡単におしゃれなWEBアプリが開発できるライブラリ(Flaskベースのライブラリ)
グラフはPlotlyというライブラリを使用しています。
(PlotlyはPython以外にもR、Javascriptなどにも対応しています)

Webアプリのプロトタイプを開発する際や、社内利用のアプリならこれで十分だと思います。

> [Dash Hello World](https://dash.plotly.com/layout)

### 不便な点

* 大規模アプリには向かないかも(DjangoやFlaskの利用を検討)
* Flask render_template が使用できない(Flaskとレンダリングの仕組みが異なるため)
* コードが少し冗長となり、メンテナンス性はあまり良くない(templateが使えないから)
* ドキ

元記事を表示

pandas 辞書にバリュー(値)を追加する

#やりたいこと
決まったキーを持つデータをfor文で回して1つのデータにしたい。
APIで毎分データを取得する。それを1つのデータにしたかった。

#方法

“`python
df_all = pd.DataFrame([])

def func(year,month,day,hour,minute):
#引数により、取得するデータを指定
object_key_name = f'{year}/{month}{day}/{hour}/{minute}.json’
#アクセスキー入力
s3 = boto3.resource(
‘s3′,
region_name=’ap-northeast-1’,
aws_access_key_id = ‘xxx’,
aws_secret_access_key = ‘xxx’,
)

bucket = s3.Bucket(buc

元記事を表示

pythonのchacha20poly1305で暗号化

pip install chacha20poly1305
とした後、

“`python

import os
from chacha20poly1305 import ChaCha20Poly1305

key = os.urandom(32)
cip = ChaCha20Poly1305(key)

nonce = os.urandom(12)
ciphertext = cip.encrypt(nonce, b’test’)
print(ciphertext.hex())
plaintext = cip.decrypt(nonce, ciphertext)
print(plaintext)

“`

今はやりのAEADってやつですね。
TLS1.3にも使われてます。
AEADっていう割には暗号化するときパスワードとか聞かれないので、
何を認証してるのか原理を知らないと安心して使えないですね。
MACを生成してるようなのでメッセージの改ざん検出でしょうか。

元記事を表示

homebrewからMacPortsに乗り換える(macOS Big Sur)

# MacPortsとは
歴史あるMacのパッケージ管理システム.大体のことはこちらの記事に分かりやすくまとめられている

https://qiita.com/tenomoto/items/66614f982de96641d662

# Macパッケージを使う目的
– 大気海洋データの解析
– 特にPython3(+Cartopy)とGrADSを多用する
– ソースコンパイルに自信がないandそのトラブルシュートに時間を割きたくない

※ macOSはBig Sur

# 使うソフトと新旧のパッケージ管理

| | 旧(移行前)     | 新(移行後) |
| ————- | ———————————– | ———————– |
| GNU系コマンド | homebrew | MacPorts |
| Python3系

元記事を表示

【AtCoder】ABC226をPython3で解説(ABCD)

ABC226のA-D問題の解説。

https://atcoder.jp/contests/abc226

## 目次
[A – Round decimals](#a—round-decimals)
[B – Counting Arrays](#b—counting-arrays)
[C – Martial artist](#c—martial-aritist)
[D – Telepotation](#d—telepotation)

## A – Round decimals

https://atcoder.jp/contests/abc226/tasks/abc226_a

### 解説

与えられた実数`X`を、小数点第一位で四捨五入して出力する問題。

pythonであれば、`round`など使ってもよいが、今回は条件分岐で説明する。

ある実数`X`は小数点第三位までしかないので、整数部分はスライスして保存しておく。
条件分岐だが`x[-3]`などとして、小数点第一位の値を参照し、その値が5以上であるかどうかを判定する。

もし5以上であれば、保存しておいた

元記事を表示

RaspberryPi4 セットアップについて(てんこ盛り版)

立ち上げ手順等の取りまとめメモ
正直まとめておかないとすぐ忘れるのでやばい

# やりたい事
①Opencvによる画像データ収集
②Tensorflow1系を使っての画像判別

大きくこの2つ(細かい部分はもっとあるが…)
目的別にRaspberryPiをセットアップすればOKだが
テスト機として全部入れる
その各種セットアップ方法をメモとして残す

# 機器環境
RaspberryPi4 modelB 8GB
RaspberryPi OS bastar(RaspberryPiImagerにて`RASPBERRY PI OS FULL(32bit)`をセットアップ)
Windows10 home 64bit

# 初回セットアップ
使用microSDは64GBを使用。
microSDのフォーマットについては[SDcardformatter](https://www.sdcard.org/ja/downloads-2/formatter-2/)を使用。
OSの書き込みに関しては[Raspberry Pi Imager](https://www.raspberrypi.org/softwa

元記事を表示

Six Sweden Majorでの勝敗をニューラルネットワークで予想をしてみた

# はじめに
各リーグの勝敗結果およびSiegeGGのスタッツをもとにSix Sweden Majorの勝敗を予想しました。
最近ディープラーニングについて勉強を始めたのでその復習を主な目的としています。
ほとんどは『ゼロから作るDeepLearning』から得た知識になります。
マップやチーム相性、BO1or3の区別等もまったくついておらず完全に数値上での予想になりますがご了承ください。

# データの準備
APAC, NA, EU, BR各リーグのチームごとのスタッツ及び結果を一つのスプレッドシートにまとめて学習データとしました。
APACはNorthとSouthの結果をまとめるのが大変そうだったので甘えてPlayoffの結果をまとめました。
https://docs.google.com/spreadsheets/d/1NnUghQ0OOZPMg07-ZWZmHngOpjavmzHOtN2cdrm7k-w/edit?usp=sharing

### team stats
各チームのスタッツになります。主に平均をとっています。
KD、Entryは総数/総数みたいに計算をしています。

元記事を表示

AWS上でデータの収集、加工、分析を行う

#はじめに
kaggleなどでデータ分析の勉強を行う際は、既に加工されて分析しやすい形になったデータに対して分析を行うことが多いと思います。しかし実務ではデータの収集から行う必要性があったり、分析に適さない生データを扱うことになると思います。

そこで一からデータの入手・加工・分析までの流れをやってみようということと、AWSの経験値を積むために、AWS上で一連の流れを処理するためのアーキテクチャを作成しました。

#学習方法
AWSについてはネットで調べつつ繋げていくのがメインでした。
個々の実装やサービス同士の繋げ方については、別で記事をあげていきたいなぁと思ってます。

スクレイピングについては、udemyの「【4つの実案件で学ぶ】Python Webスクレイピング完全パック」で学びました。実案件を交えつつ、非常に分かりやすい内容となっています。

#作ったもの

一週間に一回、バイク王さんの中古バイクのデータを取得し、データ分析を行える状態まで持っていくアーキテクチャです。
下図が今回作成したものになります。

![image.png](https://qiita-image-s

元記事を表示

破壊力学のお勉強

#今更破壊力学?
 私は、仕事では基本的に試験データを用いた解析をやっております。
最近は機械学習を用いたモデル開発なんかもやってますが、結果の解釈とかのときに必要になったので、いい機会なのでお勉強ということで。
 一応プログラムも絡めておかないと運営に怒られそうなので、適当に数式をcかpythonかmatlabで書いてみますかねぇ。

##使う本
いつ買ったのかはわからないが、家に転がっていた__小林英男著、”破壊力学”__

##私の知識
4力(材料力学、熱力学、機械力学、流体力学)は大学で履修
材料に関する知識は一般論ぐらい(機械材料とか)
固体物理は習ったような・・・。
数学は大学課程はなんとか、統計検定2級は最近合格。

元記事を表示

【Python3】メッセージボックスの表示

#はじめに
VBAなどでよくあるメッセージボックスを表示するコードです。

・「tkkinter.messagebox」をインポート
(Tool Kit Interfaceのこと)

“`Python3:messagebox
from tkinter import

#引数に(‘タイトル’, ‘内容’)を記載

ret = messagebox.askyesno(‘確認’, ‘処理を開始しますか?’) #「はい」、「いいえ」を選択
if ret: #「はい」を選択した場合はTrue
messagebox.showinfo(‘メッセージ’, ‘はいを選択しました’) #「情報」のメッセージボックスを表示
else: #「いいえ」を選択した場合はFalse
messagebox.showwarning(‘メッセージ’, ‘いいえを選択しました’) #「警告」のメッセージボックス
“`
#####その他のメッセージボックス

| 表示内容、確認内容 | メソッド、引数 | 戻り値 |
| :— | :— | :— |
| エラー |

元記事を表示

pip freezeして、パッケージを管理する

## 前提

この記事でわかること: python におけるパッケージの管理方法
pythonのバージョン: Python 3.10.0

## pythonでのパッケージ管理はpipを使う

`pip`コマンド でパッケージをインストール/アンインストールができます。

“`
// pip でインストール
pip install

// requirements.txtを指定してパッケージをインストール
pip install -r requirements.txt
“`

逆に今インストールされているパッケージを`requirements.txt`に書き出すときは、`pip freeze`を使います。

“`
pip freeze > requirements.txt
“`

## 補足

他のプログラミング言語でのパッケージ管理と管理するファイルをまとめておきます。

|プログラミング言語 |コマンド |ファイル |
|—|—|—|
|Python |pip |requirements.txt |
|Ruby |gem |G

元記事を表示

YOLOv5 (+ roboflow) で麻雀の点数計算をした話

タイトルまんまです。初心者なのでやばいところがあればご教示ください。

—–

牌の画像を撮り、麻雀牌のデータセットを自作しました。これをYOLOv5[^yolo]で学習し検出できるようになりました。また画像から牌の検出、上がり時の点数計算をできるようにしました。

![実際に画像から計算する様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603690/1ac1e129-8ec0-4e92-7c15-f999d4a7eb44.gif)

今まで同様の取り組みはたくさんあったよう[^kizi]なのですが、鳴きや赤ドラに対応していなかったので楽に学習して精度をあげて[^seido]鳴きと赤ドラに対応[^naki]してみました。

それをwebアプリにして写真を送ってドラ表示牌や親かどうかなどの状況を打ち込んだら計算してくれるようにもしました。

## データセットの作成

### 分類か物体検出か

分類とは、ある画像に写っているものが何なのかを判定します。

物体検出とは、画像の中から物体を検出・分類し

元記事を表示

Equalumの同期速度を可視化してみた。。

####以前の投稿でEqualumの検証を行った際に、5個のオリジナルテーブルをCDCの起点にして、最終的に中間の自動統合データベースを含む、5個の新規データベースをExactlyOnceで安心・安全・確実に生成する・・・・という内容の1時間以内チャレンジ!!が有りましたが、今回は、その際に作成したPythonのプログレスバー型可視化でなく、即時可視化が可能なLogiCOMPOSER(旧Zoomdata)を使った「オーバーヘッドを削った版」動画が出来ましたので、取り急ぎ公開させて頂きます。

##とりあえず・・・動画から!