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

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

医療情報技師の過去問サイトを爆速で作った話

# 背景

医療情報技師の資格試験が8月にあり、過去問の勉強しようと過去問サイトを探していたが、なかなか良いWebサイトがない。。。

以下のWebサイトを見つけたが、いくつか問題点があって、自作でWebサイトを作ることにしました。

https://iryoujyouhou.wiki.fc2.com/wiki/トップページ

# 問題点について

[背景](#背景)で述べた問題点についてですが、以下となります。

### 1. 問題の正解不正解を記録してくれない

自分が今何問正解しているのかを毎回紙にメモするのが面倒でした。
合格基準を満たしているか確認するために正答率も出したかったので、システム側で記録して欲しかった。。。

### 2. スマホ画面だと解答が丸見え

01.jpg

上記の画像のようにスマ

元記事を表示

Pythonと比べて学ぶ競プロのためのRust Part2

今までは Python で競技プログラミングをしていましたが、最近 Rust の勉強を始めました。同じように Python を書いたことがあり Rust へ入門しようと考えている人向けに AtCoder の過去問 (B~C) を両言語で解いてみます。

>この記事は Part2 です。
>- 前回の記事
> – [Pythonと比べて学ぶ競プロのためのRust](https://qiita.com/hinu1116/items/fead65fbe461b30acfdd)
>- 前回のテーマ
> – 基本文法 ( `for` / `if` / 入出力)
> – 参照
> – メモ化再帰
> – `Option` 型
> – `HashMap` / `defaultdict` / 辞書

#### 今回扱うテーマ

– 累積和 / `scan`
– オーバーフロー
– `all` / `any`
– `lower_bound`
– 座標圧縮

#### ABC238 B – Pizza

問題:

https://atcoder.jp/contests

元記事を表示

【小ネタ】続・長文matplotlibをやめるぞジョジョ 〜multiplot編〜

前回の記事のちょっとした続きです。
今回の記事は実用的なコードというよりもアイデアの紹介になります。

https://qiita.com/mochi_gu_ma/items/aea51bb986092783f073

前回のタイトルオチをひきずっています。

# 記事の背景

前回の記事でmatplotlibを簡潔に書く話を書きました。

もともと[あきとしのスクラップノート](https://akitoshiblogsite.com/)さんの以下の記事に触発されて書いた記事でした。

[[python] context manger を使ってmatplotlibの図を大量生産する](https://akitoshiblogsite.com/context-manager-matplotlib/)

が、なんとコメント欄でご本人からコメントをいただきまして…!

そこで複数のグラフをシンプルに書く方法がないかという話になり、
自分のアイデアを整理してIssueに出したので、その内容を記事にもしておきます。

今回は実用性度外視で、アイデアを伝える最小限のコードに絞っています。

元記事を表示

ドローンを使ってクラスやインスタンス、コンストラクタをわかりやすく解説してみた

クラスやインスタンス、コンストラクタはとてもわかりにくいですね。
理由はクラスやインスタンスはイメージしにくいからだと思います。

クラスをつくってインスタンス化(そのときコンストラクタで初期化)してメソッドを呼び出すという流れになるわけですが、そもそもなんでこの流れになるのか、わからない人向けの記事です。

そこで目に見えるようにするためドローンを使った例え話で解説します。
ドローンは単に時流に乗っただけですが、たい焼きや犬猫の例え話よりは、わかりやすいのではないかと。

さてドローンが作られて実戦に投入されるまでを考えてみると

①まず、ドローンには設計図があります
![c1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411052/bbcc8538-bdff-3e9e-6212-109e347e8256.jpeg)

②この設計図をもとに工場で大量生産します
1号機、2号機、3号機。。。。100号機といった具合
![c2.JPG](https://qiita-image-store.

元記事を表示

numpy.memmapを用いたメモリ節約法

kerasにはImageDataGeneratorという、データオーグメンテーションのための便利なクラスが用意されています。flowメソッドに画像データを渡しておけば、ジェネレータを呼び出す度に加工された状態の画像のバッチを返してくれるというものですが、メモリに乗り切らないほどの巨大なデータセットを扱う場合、画像データを用意する箇所が障害となりこの仕組みが利用できません。代替手段としてflow_from_dataframeというメソッドも用意されているのですが、実際にこれを利用するとエポック毎に画像の読み込みを行うため非常に時間がかかります。

本記事ではnumpyのメモリマッピング機能を利用して、高速かつ省メモリを実現しつつ、データオーグメンテーションを可能にする方法を紹介します。

# numpy.memmap

確保するディスク領域を予め指定しておく必要があります。

“`python
import numpy as np
import cv2

X_train, X_test, y_train, y_test = train_test_split(df[“filename”]

元記事を表示

pythonで「Rによる実証分析」を読む1 回帰分析の基礎

「Rによる実証分析」をpythonで書き換えながら読み進めていきます。
章によってはコード部分が少なく説明中心となっている場合もありますがご了承ください。
個人的な勉強が目的の中心となることご理解ください。

### 回帰分析の考え方
#### 回帰=予測
**回帰**とは、興味ある変数$y$の値を、他の変数$x$を用いて予測することを意味する。
このとき、$x$を**説明変数(独立変数)**、$y$を**被説明変数(従属変数)**と呼ぶ。
$x$を用いて予測された$y$の値を$x$の関数として$m(x)$などと書き、これを**回帰関数**という。
予測の誤差$\varepsilon=y-m(x)$を誤差項と呼ぶ。
#### 最小二乗法
予測の精度を上げるためには、予測誤差を小さくする必要がある。
予測の正確さの基準として、平均二乗誤差(MSE)を次のように定義する。
$$
MSE=\frac{1}{n}(\varepsilon_1^2+\cdots+\varepsilon_n^2)=\frac{1}{n}\sum_{i=1}^n(y_i-y^*)^2
$$
この平均二乗誤差を最小化

元記事を表示

pythonで「データ解析のための統計モデリング入門」1 確率分布と統計モデリングの最尤推定

「データ解析のための統計モデリング入門」はRで書かれた本ですが、これをpythonで書き直しながら読み進めていきます。
内容の理解と読み進めることが目的ですので、ベストなコードではないことをご理解ください。
たくさんの人がやっているような内容だとは思いますが、ご了承ください。

## 1. 確率分布と統計モデリングの最尤推定
### 1.1 例題:種子数の統計モデリング
植物50体からなる集団を調査していて、各個体の種子数を数えたデータがあるとする。
このデータはカウントデータであり、非負の整数である。

“`python
import numpy as np

data = np.loadtxt(‘rdata1.txt’)
“`

“`python
data
“`

array([2., 2., 4., 6., 4., 5., 2., 3., 1., 2., 0., 4., 3., 3., 3., 3., 4.,
2., 7., 2., 4., 3., 3., 3., 4., 3., 7., 5., 3., 1., 7., 6.,

元記事を表示

LocalStack を使って dockerise した Lambda を実行する方法

# はじめに
AWS上で動かしているアプリをどうにかしてローカルで実行できないかと思って
色々試してみてどうにか Lambda を動かすことができたのでそのまとめ。

# LocalStack を使った構成

## 使っている技術など
* Docker
* Docker Compose
* LocalStack
* Python3

## ディレクトリ構成

“`
.
├── docker-compose.yml
├── app # ここにAPIのコードが入っている感じ。今回は説明対象外
└── docker
├── api
│ └── Dockerfile # 今回は説明対象外
├── lambda
│ └── Dockerfile # AWS で実行するやつ。今回は説明対象外
└── localstack
├── create_lambda.sh
├── dummy_function.py # 別にここにある必要はないけど、同じところにあった方が管理しやすいので
└── dummy_

元記事を表示

【python】openpyxlで罫線の設定の取得方法

# きっかけ
pythonにてopenpyxlを使用し罫線を引くところまではできたのだが、一つのファイル内に複数のフォーマットが存在し、フォーマットに合わせて罫線を引き直したかったため。
検索したが情報がほとんどない状態だった為メモ。

# 元の条件分岐による罫線の引き方
※前提として既にフォーマットに合わせて罫線が引いてあるセルとする。
※最終行だけ他の行とフォーマットが異なるため再設定をする。
罫線を引くきっかけとなるセルの値で分岐させて罫線の種類を設定していた。
“`python
from openpyxl.styles.borders import Border ,Side

side_dotted = Side(style=’hair’, color=’000000′)
side_thin = Side(style=’thin’, color=’000000′)

# 最終行の罫線のtopをフォーマットに合わせてhairかthinにしたい
if cell.value == ‘〇〇’:
cell.border = Border(…(省略)…, top=side

元記事を表示

saveAsJSONL.js【JSON Lines】

“`javascript
function saveAsJSONL(data, name=new Date().toLocaleString(‘sv’).replace(‘ ‘,’T’).replaceAll(‘:’,’_’)+’.jsonl’) {
const a = document.createElement(‘a’)
a.download = name
a.href = URL.createObjectURL(new Blob([data.map(JSON.stringify).join(‘\n’)], {type: ‘application/jsonlines+json’}))
a.click()
}
“`
### JavaScriptのデータを保存する
Usage
“`javascript
saveAsJSONL([‘pen’, ‘pineapple’, ‘apple’, ‘pen’])

// ファイル名を指定
saveAsJSONL([‘pen’, ‘pineapple’, ‘apple’, ‘pen’], ‘hoge.jsonl’)
“`

!

元記事を表示

pythonで「統計学入門」8 回帰分析

とても有名な「統計学入門」をpythonで実装しながら読んでいきます。
本をしっかり読むことと実装の勉強が目的ですので説明が不足していたりします。
また、実装方法に関してはベストなものではないと思いますのでご了承ください。

### 前回
仮説検定

https://qiita.com/tanaka_benkyo/items/0bea7397be6df0e6f5e6

### 回帰分析
回帰分析は、2変数$X,Y$のデータがあるとき回帰方程式と呼ばれる説明の関係を定量的に表す式を求めることを目的としている。
説明される変数を$Y$で表し、これを従属変数、被説明変数、内生変数などと呼ぶ。
また、説明する変数を$X$で表し、独立変数、説明変数、外生変数などと呼ぶ。
回帰分析の目的は、$X$と$Y$との定量的な関係の構造(モデル)を求めることである。

説明変数$X$、被説明変数$Y$とし、
たとえば、

$$
y=\beta_1+\beta_2x
$$
とする。
これは$y$の$x$上への回帰方程式、回帰関数などと呼ばれるが、$y$が$x$の線形関数である場合を線形関数、それ以外のものを非

元記事を表示

カメラを使って変位を測る サンプリングモアレ法

# はじめに
 カメラと格子模様だけで精度よく変位を計測するサンプリングモアレ法という計測手法を見つけたのでご紹介します。音響計測ではナイキストの定理を満たさなければいけないとよく教わりますが、意図的にエイリアシングさせ、モアレを使うのは面白いなあと思いました。

 モアレというのは縞模様と縞模様を重ね合わせたときに見える模様のことです。
![モアレ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455608/715e82a1-1df4-805b-c7f0-9a3b02179038.png)

# 参考
 以下を参考にしました。
[森本吉春,藤垣元治,柾谷明大,”サンプリングモアレ法による変位・ひずみ分布計測”,日本真空学会, Vol.54, No.1, PP.32-38, 2011.](https://www.jstage.jst.go.jp/article/jvsj2/54/1/54_1_32/_pdf)
[新川電機 構造物の形状や変形を調べる格子法・モアレ法 No.1 サンプリングモアレ法による

元記事を表示

Gaussianの解析スクリプト[python]

# 量子化学計算ソフト”Gaussian”の解析スクリプト
量子化学計算ソフトウェア”Gaussian”の出力ファイルの解析スクリプトです。
複数の出力ファイル(*.log)について、電子エネルギーとギブズエネルギー、またそれらを構成している並進・振動・回転のエネルギーを分割してcsvファイルに出力します。
言語はpython3となります。

“`python
import pandas as pd
import numpy as np
import glob
“`

“`python
class GaussianLog():
def __init__(self, data_sp, Temp):
self.data_sp = data_sp
self.Temp = Temp

def electronic_energy(self):
for i in range(len(self.data_sp)):
if “SCF Done:” in self.data_sp[i]:

元記事を表示

PythonのType Hint(annotation)を自由自在に操る

PythonのType Hintを使ってますか?
最初は苦痛でしか無かったのですが、最近、意図通り使えるようになってきた。

## 誰が書いた?
1. 時間無くて、TypeHintを苦戦しながら使っている者です。
1. ドキュメント読めていません。間違いがあればご指摘頂ければ幸いです。

## Type Hint使う理由(利点)
1. 実行前にエラーがわかり、時間節約
2. 思い違いの論理エラーを早くに検出し、時間無駄にしない。
2. 改てコード見直した時、コード内容を思い起こしやすい。

## Type Hintという結論は良さそう
1. 型厳密性が高い言語の方がコンパイルした時の早いじゃないの?、と思ってますし、きっとそうでしょう。でも、Type Hintという形がPythonicな書き方の自由を実現しているのじゃないかと思う。以前より、型のstrict性を求めなくなりまして、TypeHint使ってます。
1. annotationのおかげで、Cythonの型指定も楽になりました。(Pure Pythonモードなので20-50%の向上しか無いそうですが。)

“`python
#

元記事を表示

[python]e-typingの不満なところ!

# イータイピングマジで最高
タイピングゲームといわれて、何をみなさんは思い浮かべますか?
ほとんどの方が寿司打、e-typingを思い浮かべるかと思います。
(WEB上のものだけ)
小学生のころからタイピングの練習のために私もよく利用していました!

今回は、題名にもある通りe-typingについての話なのですがこのゲーム非常にやり直しがめんどくさい。。

どういうことかというと、特にノーミスタイプを目指してゲームを行う際に

ゲームスタートー>タイプミスー>ESCキー押すー>マウスでもう一回ボタンを押すー>・・・

という流れが通常動作になりますがマウスを動かすのが非常にめんどくさい!!!

今回、これを解決するためにpythonを扱ってキーボードだけで完結するようなプログラムを作りたいと思います!

# 環境
– Win11
– Python 3.9.7

## 使用モジュール
– keyboard
– pyautogui
以下のコマンドをプロンプト上で入力してあげてください。

キーボードの入力を検知す

元記事を表示

Python の input( ) と同様の挙動を JavaScript, Node.js で再現する

私と同じ悩みを持つ方のために、共有させていただきます。
以下のQAにてご指導頂いた内容ですので、経緯等は以下のページを参照ください。

https://qiita.com/watanabe-tsubasa/questions/07131f97fa0a48897ab2#answer-7d6b619e11e5876f6023

## 動作

実行すると数字1を聞かれます(今回は10を入力)。

入力すると数字2を聞かれます(今回は20を入力)。

元記事を表示

Python + HerokuでAPEXのマップローテーションをつぶやくTwitter botを作った話

# はじめに
Apex Legendsというゲームをご存じでしょうか?簡単に言うとバトルロワイヤル型のFPSゲームです.
バトルロワイヤルのマップは現在3種類のマップが60~120分ごとにローテーションするのですが,ゲームを始める前に今どのマップローテーションになっているのかを知りたい!と思い,色々調べていたらどうやらマップローテーションを返してくれるAPIがあるということで,このAPIを利用してTwitter botを作ろうと思い立ちました.
初投稿&経験が浅いので拙い部分も多々あると思いますが,ご了承ください.

# 使用するAPI
– [Apex Legends Status(ALS)](https://apexlegendsapi.com/#introduction)
– Twitter API

# 完成したもの

元記事を表示

独学開始から5ヶ月。友人のWebサイト作成の依頼を受けた。

## はじめに

タイトルにある通り、プログラミング独学を始めてから5ヶ月ほど経った頃、友人からWebサイト作成の依頼がきた。オリジナルユニフォーム製作のサービスを始めるにあたり、顧客の窓口となるようなサイトが欲しいとのことだった。

Udemyの学習にてサンプルサイトをデプロイし、次はオリジナルのコンテンツを作りたいと思っていた自分にとっては絶好の機会だった。今回は初のWebサイト作成と、その公開に至るまでの記録を残しておく。同じ境遇の方などに、僕の経験が参考になれば嬉しい。

実際のサイト: [AMBICIÓN](https://ambicion-jp.com/)

ソースコード: [GitHub](https://github.com/janjunjohn/ambicion)

## ツール
### スキルレベル
* Progate: Python, Html, Css, Javascriptを一通り
* Udemy: [[100 Days of Code – Python]](https://www.udemy.com/course/100-days-of-

元記事を表示

AtCoder B – Good Distance

## 問題
https://atcoder.jp/contests/abc133/tasks/abc133_b

“`Python
N, D = map(int,input().split())
#リスト内包表記
#上から順にlistを読み込んでlistに格納していく。
x = [list(map(int, input().split())) for l in range(N)]

ans = 0

for i in range(N-1): # i番目の点
for j in range(i+1, N): # j番目の点
dist = 0
for k in range(D): #i点とj点を計算
dist += (x[i][k] – x[j][k]) ** 2
if dist ** 0.5 == int(dist ** 0.5):
ans += 1

print(ans)
“`

## ポイント

i点とj点を比較するので、全検索forの2重ループを

元記事を表示

CloudStorageを経由してBigqueryに転送する方法

# Motive
[巨大なテーブルをBigqueryに転送する方法](https://qiita.com/satsukiya/items/38311ca4d16c6f6dfc4c) ではひとつのテーブルに約2億レコードあって約100GBある巨大なデータをBigqueryに移行する方法を書いています。 現在は移行作業は完了し、次のタスクとして日次で追加されているMySQLのデータをBigqueryに移行するスクリプトを作成していました。24時間分と前回のデータよりはかなり少ないので、サーバ自体のメモリや容量などので考慮すべき部分はないのでここで紹介する方法はよく使うパターンではないかと思います。また、前回ではデータの経由地点としてS3を使っていましたが、ここではGCPのCloud Storageを使っています。同じGCP内であるためか空のテーブルの作成や転送の構成を設定する必要がないので比較的簡単に転送は出来ました。ここではGCPのサービスのみでBIgqueryに転送する方法を紹介します。

# Preparetion

必要なパッケージは下記の通りです。

“`sh
pip in

元記事を表示

OTHERカテゴリの最新記事