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

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

災害拠点病院一覧のPDFをCSVに変換

https://www.mhlw.go.jp/content/10800000/000773371.pdf

“`python
import pathlib

import camelot
import pandas as pd
import requests

def fetch_file(url, dir=”.”):

p = pathlib.Path(dir, pathlib.PurePath(url).name)
p.parent.mkdir(parents=True, exist_ok=True)

r = requests.get(url)
r.raise_for_status()

with p.open(mode=”wb”) as fw:
fw.write(r.content)
return p

# ダウンロード

url = “https://www.mhlw.go.jp/content/10800000/000773371.pdf”

p = fetch_file(url)

# PDF変換

元記事を表示

【Project Euler】Problem 62: アナグラム立方数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 62. アナグラム立方数

原文 [Problem 62: Cubic permutations](https://projecteuler.net/problem=62)

**問題の要約:立方数の5通りのアナグラムがすべて立方数になるとき、その最小の立方数を求めよ**

3通りの例は以下のようになり41063625が最小値となります。

“`math
41063625=345^3,56623104=384^3,66430125=405^3
“`

1から順番に立方数を求めてそれを文字列にしてソートしたもの(アナグラムの最小値)をキーとしてDICT型に格納していきます。

例えば$5^3=125$と$8^3=512$はソートすると”125″となるのでDICT型にキーを”125″で値が[125,512]となりま

元記事を表示

【Project Euler】Problem 61: しりとり多角数

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 61. しりとり多角数

原文 [Problem 61: Cyclical figurate numbers](https://projecteuler.net/problem=61)

**問題の要約:4桁の多角数(3・4・5・6・7・8角数)6種類が2つの数字のしりとりで循環するような集合の和を求めよ。

言葉で書くと分かりづらいですが、条件としては、
* 4桁の多角数6種類(3・4・5・6・7・8角数)の集合
* 6つの数は後ろ2桁と前2桁が等しい2桁しりとりの形になり巡回する
* 多角数6種類の順番は自由

以下が多角数3種類の例です。

“`math
8128(三角数)2882(五角数)8281(四角数)
“`

まず2桁しりとりのチェックする関数**isCytclic**。

“`python
de

元記事を表示

【Project Euler】Problem 60: 連結素数の集合

* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。

### 問題 60. 連結素数の集合

原文 [Problem 60: Prime pair sets](https://projecteuler.net/problem=60)

**問題の要約:5個の素数から2組を連結した数もすべての素数になるような5個の素数の和の最小値を求めよ。

まず2個の素数の連結したものが素数になることをチェックする関数**isCatPrime**を作ります。これは後から何度も呼ばれるのでメモ化で高速化するために**@lru_cacne**を指定します。

“`python
from sympy import isprime, primerange
from functools import lru_cache
@lru_cache(maxsize=None)
def isCatPrime(p1,p2

元記事を表示

Flaskとdynamodb_localでDB認証とセッション管理を試してみる(テストくどめ、Selenium入り)

# はじめに
PythonのWebアプリのフレームワークのFlaskとなります。
dynamodb_localを利用し、DB認証とセッション管理のサンプル実装となります。

各種バージョンは以下のとおりです。
Python 3.9.6
Flask 2.0.2
Flask-Login 0.5.0
Flask-Sessionstore 0.4.5
pynamodb 5.2.0
pytest 6.2.5
pytest-flask 1.2.0
selenium 4.1.0

ソースは[github](https://github.com/small-java-world/flask_login_sample)に登録しております。

# サンプル概要

## ファイル構成(github)
ファイル構成(github)は以下のとおりです。

“`
プロジェクトルート
├─login_app
│ │─models
│ │ │─sessions.py
│ │ │─users.py
│ │
│ │─templates
│ │

元記事を表示

個人開発2年続けて、やっぱりヒカキンはすごいってこと

こんにちは。ぬこすけです。

1年ほど前に「[開設後3週間で収益10万円を得た個人開発サイトに立ち向かった話の全部を公開する](https://qiita.com/nuko-suke/items/652366597ce2ce0a91f9)」を記事を公開し、Qiitaのトレンドの載ったりTwitterでもシェアされるなど、多くの方に読まれてうれしい限りです。

https://qiita.com/nuko-suke/items/652366597ce2ce0a91f9

さて、もうすぐ個人開発が2年目になるのですが、個人開発を続けていたからこそ思うことがいくつか思うところが出てきました。
**これから個人開発をしようとしている方の参考**になったり、あるいは**今も個人開発を続けていて「あーこれわかる!」みたいな共感**が得られたらうれしいです。

## どんなサイト作ったの?
知らない方が多数だと思うので簡単に個人開発しているサイトを紹介します。

「[ぬこぷろ](https://nuko-programming.com/)」という技術書ランキングサイトを開発しています。

https

元記事を表示

AWS Organizations 内のアカウントリストを組織構造と一緒に csv 出力する

## はじめに
AWS Organizations でマルチアカウント管理していると、アカウントの一覧を定期的に取得したいときはありませんか?

アカウント情報だけではなく、所属する OU の情報も一緒に出力する方法を紹介します。

## 実はコンソールから csv をダウンロードできる
コンソール上でも通知が出ているように、最近組織内のアカウントリストを csv 出力することができるようになりました。アクションから「アカウントリストをエクスポート」でダウンロード可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/1333de19-3353-0d66-e9af-375ee8c6ba97.png)

これはこれでとても便利なのですが、2022年1月時点では以下の問題があります。

### コンソールからしかダウンロードできない
AWS CLI や SDK 経由でダウンロードができないため、定期的に取得したいといったケースでは自動化が困難です。以下のドキュメントに記載が

元記事を表示

pandasチュートリアル on Jupyter Notebook

pandsチュートリアルWebサイトの内容を翻訳しJupyter Notebookで実際に動かしながら学習できるように編集しました。

元にしたWebサイトはこちら

https://pandas.pydata.org/pandas-docs/stable/getting_started/intro_tutorials/index.html

 

オリジナルのサイトに加え、わかりにくいと思われる箇所の補足説明や、基本的に全てのコードが実行できるようにしています。

pandsの学習ツールとして活用ください。チュートリアル記載以外の事項を自由にコードを変更・追加しながら確認することで理解が進みやすいかと思います。

:arrow_down: 下記のGithubのサイトからファイルをダウンロードして、Jupyter notebook環境、またはGoogleコラ

元記事を表示

Python用分散処理フレームワーク Ray まとめ

#はじめに
Ray関連の文献から得た情報をメモしていく(随時更新)

#Rayとは
– Python用の分散処理実行フレームワーク
– 分散処理について詳しくなくても使いやすい(らしい)
– 複数のマシン(クラスタ)で分散処理を行える
– クラスタはHead nodeとWorker nodeからなる

DrirverやWoerker、Object storeなどは後述。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619163/2b29b795-5add-348f-3e16-44dd1158d261.png)

# プログラミングモデル
(よくわからないが、)Rayの差別化ポイントは「actor 」と「task-parallel programming abstraction」にあるらしい。

> Ray provides both an actor and a task-parallel programming abstraction. This uni

元記事を表示

論文の勉強7 GoogleNet(Inception V1)

GoogleNetについて構造の説明と実装のメモ書きです。
ただし、論文すべてを見るわけでなく構造のところを中心に見ていきます。
勉強のメモ書き程度でありあまり正確に実装されていませんので、ご了承ください。

以下の論文について実装を行っていきます。

タイトル:Going deeper with convolutions

https://arxiv.org/pdf/1409.4842.pdf

### GoogleNet

#### Inception module
1×1、3×3、5×5の畳み込み層、そして3×3のMaxPooling層のそれぞれの出力を結合して1つの出力とします。

#### dimension reduction
3×3、5×5の畳み込み層の前にチャンネル数を削減するために1×1の畳み込み層を追加します。
さらにMaxPooling層の後にも1×1の畳み込み層を入れることでチャンネル数を変換します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2358656

元記事を表示

shotcutのタイムラインに字幕を追加する

# 目的
shotcutのmltプロジェクトファイルに、動画内で話している内容を字幕として追加する。

# 背景
前回のNo.4記事により、動画の音声から文字起こしすることが出来た。次はshotcutのmltプロジェクトファイルに字幕として追加する。

– No.4記事「[動画の音声から文字起こしする](https://qiita.com/igapon1/items/2aae838aab22feb2eb6a)」
– No.3記事「[shotcutのタイムラインに動画を追加する](https://qiita.com/igapon1/items/af5470b75eff1f140332)」
– No.2記事「[Pythonとffmpegで動画の無音部分をカットする](https://qiita.com/igapon1/items/3faa83fc8af1543bc672)」
– No.1記事「[shotcutで動画作ってyoutube投稿してみた](https://qiita.com/igapon1/items/5486f187d7751af2ddd5)」

# 環境
– Windows1

元記事を表示

第2回 株価予測_LSTM ver.1

# 初めに
全部で4本の記事に分けて書いています!

+ 第1回 株価予測_可視化編
+ 第2回 株価予測_LSTM ver.1
+ 第3回 株価予測_LSTM ver.2
+ 第4回 株価予測_アプリ化編

実装コード

https://github.com/seiji0203/stock-prices-prediction/blob/master/第2回_株価予測_LSTM_ver_1.ipynb

今回は**金曜日の終値が木曜日の終値よりも上がるか下がるかの2値分類**をPythonで実装していきたいと思います。使用する**モデルはLSTM**です。LSTMは時系列データを解析することに長けているため、株価データのような時系列データにはとても効力を発揮します。LSTMについては[以前の私の記事](https://qiita.com/seiji1997/items/85b587e87b79c80a2042#lstmlong-short-term-memory)を参照してください。

**このシリーズで行っている株価のチャート分析は意思決定のためのテクニカル指標に過ぎません。なので

元記事を表示

第1回 株価予測_可視化編

# 初めに
全部で4本の記事に分けて書いています!

+ 第1回 株価予測_可視化編
+ 第2回 株価予測_LSTM ver.1
+ 第3回 株価予測_LSTM ver.2
+ 第4回 株価予測_アプリ化編

実装コード

https://github.com/seiji0203/stock-prices-prediction/blob/master/第1回_株価予測_可視化編.ipynb

モチベーションとしては、時系列データをweb上から取得して、加工・集計、可視化、予測、アプリケーションへの組み込みまでをスムーズに実行できるようにすることです!今回は可視化編なので、得られたデータを可視化して細かく解析していきたいと思います。

**このシリーズで行っている株価のチャート分析は意思決定のためのテクニカル指標に過ぎません。なので、予測に絶対は無いことと、株やFXで損する・得することの判断は自己責任でお願いします。ちなみに私は過去にFX(レバレッジ20倍)で[テクニカル分析](https://www.jibunbank.co.jp/products/foreign_deposit/c

元記事を表示

async await multiple 自分の使う言語まとめ

コンパイラの言うがままにasync awaitして結局同期的じゃんと言うコードを死ぬほどみてきた。
いいかげんそこそこ使いこなせる程度には知っておきたいね。

# JavaScript
https://qiita.com/im36-123/items/c0678a46ee0f8e44e150
`await Promise.all`使う

“`javascript
function get(url) {
return fetch(url);
}

async function fn() {
const results = [];
const urls = [‘https://hoge/api’, ‘https://fuga/api’];
for (const url of urls) {
results.push(get(url));
}
console.log(await Promise.all(results));
}
“`

# Kotlin
https://stackoverflow.com/a/62966043/5598088
`awaitA

元記事を表示

PyTorchで深層学習モデルの中間層の特徴ベクトルを取り出す方法のまとめ

# はじめに
学習済みの深層学習モデル(特に画像認識のCNN)は特徴抽出器としても有用で、予測するだけでなく中間層の特徴ベクトルを取り出して別のことに使いたいこともよくあります。

PyTorchで中間層の特徴ベクトルを取り出すには、モデルの必要ない層を恒等関数に置き換えたり、必要な層だけを取り出して新たなモデルを作成したりするなど、何通りか方法があります。
特に、Torchvisionのv0.11から新たに [`feature_extraction`](https://pytorch.org/vision/stable/feature_extraction.html) というモジュールが追加されたことで、簡単に任意のモデルから中間層の特徴ベクトルを取り出せるようになっています[^1]。

本記事では新しい `feature_extraction` を使う方法と、それ以前の方法をまとめます。

# `feature_extraction` モジュールを使う方法
[`torchvision.models.feature_extraction.create_feature_extracto

元記事を表示

SDFを構造式の画像も含めてサクッとエクセルに変換する

#はじめに
以前、[SDFをサクッとCSVに変換する](https://qiita.com/kimisyo/items/bc391d451b90c819996b)という記事を(全く反響はなかったものの)書いてみたが、やはりエクセルで構造式もあわせて見たい!という(自分だけの)要望に応えるためにやってみたメモ

ちなみにRDKitのツールでも似たようなことはできることは知っているが、カスタマイズ性も考慮して今回トライした。

# 環境
こんな感じ。

– python
– openpyxl
– RDKit

# ソース
はい、いきなりのどん。

“`python
import argparse
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem.Draw import rdMolDraw2D
import openpyxl
from openpyxl.styles import numbers
import openpyxl.drawing.image
from io import BytesIO

元記事を表示

【Python】Pokémon UNITEの勝率のモデリングを通して確率・統計の雰囲気をつかむ

# はじめに
[【Python】専門書や論文を読みたいけど数学が苦手・わからない人向けのコードを読んで学ぶ数学教本](https://qiita.com/PHVTuber/items/94577f506e78852180ca)の番外編です(第2弾の記事は下書きは終わっていますのでしばしお待ちを)。この記事では現実の問題をモデル化して考える材料を作るというデータサイエンスっぽい事をやっていきます。タイトル通り[『Pokémon UNITE』](https://www.pokemonunite.jp/ja/)における勝率のモデル化というのがメインの話になりますので、遊んだことがない人はインストールして数十回遊んでからこの記事に戻ってきて下さい。この記事はポケモンユナイトの勝率に関する研究で、数式やプログラムを組み上げるの{を見守る・に参加する}というものになります。そのため、知識を得たい人には合わない内容かと思います。最終的な結果等は別記事に作りますので、洗練されたまとまった知識を学びたい場合はそちらをお読み下さい。拙文ですが、内容が面白いと思ったらお勧めしてくれたらうれしいです。徐々に更

元記事を表示

新型コロナウィルスの第6波を予測して見た

# はじめに
今回は、新型コロナウィルスの第6波の予測を、SIRモデルを用いながらしたいと思います。

# 必要なモジュール

プログラムコードは、python

“`python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
import pandas as pd
plt.rcParams[‘font.family’] = ‘Hiragino Sans’
import datetime
“`

# データセット
[厚生労働省](https://www.mhlw.go.jp/stf/covid-19/open-data.html)のサイトの「新規陽性者数の推移(日別)」よりダウンロードし、`第6波生データ.csv`とファイル名を変更した。

“`python
df = pd.read_csv(‘第6波生データ.csv’, header=0)
df.head()
“`

![Screen Shot 2022-01-28 at 21.45.46.png

元記事を表示

最もシンプルな環境の強化学習を書いてみた

#概要
 最も単純な環境で強化学習を構築してみます.2次元のランダムウォークを参考にして,上下左右に動く点粒子をエージェントと設定します.今回は離散型の強化学習を前提にしているため,上下左右の同じ加速度から一つを毎ループ選択するような形にします.xyどちらかが-1.0~1.0をはみ出したら終了し,その正方形の範囲の下の辺に当たったら報酬を1与えるとします.他は全部報酬0です.

#準備
 `python = “3.6.8”`
 `pytorch = “1.6.0”`

#コード
 ・エージェント(自身の位置を知覚できない設定)

“`agent.py:
import random
import numpy as np

import torch
import torch.nn as nn
import torch.nn.functional as F

class Agent(nn.Module):
def __init__(self,device):
super(Agent,self).__init__()
self.action_space

元記事を表示

コマンドラインからpytorchでgpuが使えるかどうか確認する

コマンドラインからpytorchでgpuが使えるかどうか確認するには以下を実行すればOK

> https://note.nkmk.me/python-pytorch-cuda-is-available-device-count

“`
$ python -c “import torch; print(torch.cuda.is_available())”
False
“`

deviceの数を数えるには以下を実行すればOK

“`
$ python -c “import torch; print(torch.cuda.device_count())”
“`

# 参考

https://note.nkmk.me/python-pytorch-cuda-is-available-device-count

元記事を表示

OTHERカテゴリの最新記事