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

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

Flask × postgresql × Heroku でデプロイまでしたときの過程・備忘録・エラー対処まとめ

# はじめに
Flaskの勉強で簡単なアプリを作ったので、Herokuにデプロイしてみました。手順も忘れてしまいそうなので備忘録ついでに書き記しておきます。

# 前提
– herokuアカウントを持っていること
– herokuコマンドが使えること
– gitコマンドが使えること

# ローカルで開発
まずはPythonでアプリを作りましょう。

今回はPostgreSQLと連携してSQLAlchemyを使ってテーブルのデータを表示するアプリを作りました。

ファイル構成はこんな感じです。
“`

│ server.py

└─flask_app
│ config.py
│ __init__.py

├─models
│ data.py
├─static

├─templates
│ index.html
├─views
views.py
“`
\_\_init__.pyとserver.pyはこんな感じです。
“`__init__.py
from

元記事を表示

【TensorFlow】TF1.xからTF2.xへのバージョンアップの際にモデル出力の再現性を保つ

# はじめに – 本当にあった怖い話

最近、TensorFlow1.x系 + Kerasで記述されたモデルの実装をTensorFlow2.x系へバージョンアップ対応する機会がありました。

TF2.x系はTF1.x系とあまり互換性がないため、バージョン移行にめちゃくちゃ苦労したという話はどこかしらで色々と聞いていました。
自分もそうなるのではないかとビビり、今回の対応にどれだけ手こずるのか戦々恐々としていましたが、幸運なことに自分のプロジェクトでは、ほんの4行コードを修正するだけで問題なく動作させることができました。**動作させることだけなら。**

(ちなみに、以下のように書き加えました)
“`python
# import tensorflow as tf (この部分をコメントアウト)
import tensorflow._api.v2.compat.v1 as tf # TF2の互換モジュールで置き換え
tf.disable_v2_behavior()
tf.disable_v2_tensorshape()
“`

思いの外うまくいったのでホッと胸を撫で下ろしつつ、動作確

元記事を表示

【数学的思考方法】①三角比(Trigonometric Ratio)から複素平面(Complex Plane)まで。

これまでの投稿内容のとりあえずのまとめその1。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597772/71886779-0a9f-0cd1-46d8-0f4c7d259885.png)

* a=c×cos(θ)
* b=c×sin(θ)
* a=b×tan(θ)

今回の出発点は**三角比**(Trigonometric Ratio)とします。

## 一次元球面的分布(1D Spherical Distribution)における平均(Mean)と分散(Variance)

[【数理考古学】ピタゴラスの定理あるいは三平方の定理からの出発 – Qiita](https://qiita.com/ochimusha01/items/4c7f731b0ef3cc998aa1)
![CFS01.gif](https://cdn-ak.f.st-ha

元記事を表示

NGS解析に使用するリファレンスゲノムの取得方法について

# 概要
シーケンスデータ(fastqファイルなど)から得たリードが、ゲノムのどの領域に由来するかを推定するためには、以下2つのファイルが必要となります。
– リファレンスシークエンスデータ(対象生物におけるゲノムの塩基配列が記述されている)
– アノテーションデータ(遺伝子など、ゲノム上の位置が記述されている)

今回はlftpコマンドを利用し、ENSEMBLから上記のデータをダウンロードします。

# 環境
私の実行環境は以下の通りです。

– MacBook Air (M1, 2020)
– macOS Monterey バージョン 12.3.1
– Homebrew バージョン 3.4.11
– LFTP バージョン 4.9.2

# アノテーションファイルのダウンロード
まず、ファイルのダウンロードに用いるlftpをダウンロードします。
“`terminal
brew install lftp
“`
次に、ensemblにアクセスします。
“`terminal
lftp ftp.ensembl.org/pub/

#すると、このような出力が得られます。
#以下、出力結果

元記事を表示

【ニッチすぎる】とある自動車学校の時間割から学科を連続して受けられる日程を出力するアプリ

# はじめに

自動車の教習所では技能(実際の運転)と学科(座学)を勉強する必要があります.技能は担当教官と日程を調整して進めていくことが多いですが,学科は決められた時間割から都合の良い時間の講義を取っていくことが多いかなと思います.以下が私が通っている千歳自動車学校の学科時間割の一部です.第一段階の学科は黒文字で,第二段階の学科は赤文字で表記されています.
時間割の例

第一段階の学科を連続して受けられる箇所を赤丸で囲いました.どうせ教習所に足を運ぶなら,こういう連続して受けられる日程を狙って行きたいですよね?別に目視で確認すればすむことではあるのですが,私が通っている教習所の時間割が2行で一つの時間帯を表していて若干見づらいのと,個人的に色弱気味で赤と黒

元記事を表示

Python の数値を日本の命数法(万億兆)の文字列に変換するパッケージ cnum

# はじめに
株式市場の分析に Python を活用しているのですが、大きな数字をあつかう際に、「万、億、兆」といった、命数法を使いたくなりました。Apple社の昨年度の株式時価総額は307兆9029億200万円と示す方が、307902902000000円よりも日本人にはわかりやすいです。このような命数法は日本、中国、韓国でも利用されています。cnum は数値データから各国の命数法に合わせた文字列を生成するためのパッケージです。

# インストール方法
以下のコマンドでインストールをします。
“`
pip install cnum
“`

以下のようにパッケージのメソッドに、数値データを引数として渡して呼び出すことで、各国の命数法の文字列を取得できます。(韓国の小数点以下の命数法がわからなかったので、日本の命数法を使用しています。もしわかる方がいらっしゃいましたら、コメントをお願いいたします。)
“`python
import cnum

# 日本の命数法で文字列を返す。
cnum.jp(123456789.12)
‘1億2345万6789 1分2厘’

# 中国(簡体字)の命数

元記事を表示

OpenCVでシンクロビューアを作り間違い探しに活用する

# はじめに
同じサイズの複数の画像を**同期させて**見たいことがよくある。

– 間違い探し
– トレパクの検証
– 撮影時期の異なる[定点撮影](https://qiita.com/mo256man/items/9b451ff246e019437c98)写真を見比べる
– AEやGANなど生成モデルのAIで元画像と生成された画像を比較

など。
単に並べるだけでは駄目だ。大きい画像の注目すべきエリアのみを並べて比較したい、もちろんそのエリアは動かしたいし拡大縮小もしたい。
そんなビューアがあるといいなと以前から思っていたのだが、個人的に本格的なニーズが発生したので満を持して作ってみた。

# 完成品
みんな大好き[サイゼリヤの間違い探し](https://www.saizeriya.co.jp/entertainment/)を今回のアプリでやってみた。
![saizeriya.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520216/d6f8cac9-8020-df4e-2a6b-37

元記事を表示

【Django,A-frame】お店探しのWebARを作りました。

# はじめに
### WebARってなに?
文字通りWeb上で機能するARのことです。
WebARは「Webアプリ」に位置付けられ、スマホにインストールして使う「ネイティブアプリ」とよく比較されます。

### WebARのいいところってなに?
一言で言えば、手間が無くなることに尽きると思います。
ネイティブアプリの場合、ユーザはアプリを入手する手間があり、開発者はデバイス毎にアプリを開発する手間があります。Webアプリでは、この手間がさっぱりなくなるのです。

2022年現在では、GUIの充実さと応答性が優れてるネイティブアプリが主流ですが、後者の課題は5Gの実現に伴いWebアプリでも十分なパフォーマンスを得ることができると思います。
GUIの性能が追いつけば、小中規模のアプリはWebアプリへ高性能の大規模なアプリはネイティブアプリと言ったように棲み分けがされるのではないでしょうか。

### 開発の動機
WebARを開発してみたい。
お店探しアプリって店名よりお店の情報を一覧で分かればいいよね?と常々思っていたので。

# 記事の目的

開発中に感じたことは、WebARの実装に

元記事を表示

強い言葉判定器の実装メモ【Python】

# 概要
[ビーフストロガノフはどのくらい強いのか](https://qiita.com/Hirata-Masato/items/775ecd86f26f305fd393)という記事が好きすぎて、自分でも強い言葉言葉判定器をつくってみたくなりました。(著者の方、素敵な記事をありがとうございます)
上記の元記事は非常に丁寧に書いていただいているので、基本的に大きく詰まることなく実装できたのですが、kerasと深層学習の初心者だったこともあって少し調べないとわからないこともあったので、やったことをメモしておきたいと思います。(以下、特別な注釈がない限り「元記事」という言葉は上記記事を指すものとします)

# 環境

“`
% sw_vers
ProductName: macOS
ProductVersion: 12.3.1
BuildVersion: 21E258
“`

# 準備

## 仮想環境
仮想環境を作って立ち上げておきます。

“`
% mkdir [dirname]
% cd [dirname]
% python -m venv .venv
% source .venv

元記事を表示

プロキシがある環境でのpipのSSLエラー対策について

# 環境
Windows 10 ビルド XXXX(忘れたのであとで確認)
Python 3.10.4
pip 22.X.X(忘れたのであとで確認)

# 対策方法について
他の記事で、trusted-hostにするといいとあったが、そもそも設定ファイルの保存場所がよくわからず、CLIでの設定についてはあまり記載がなかったためこちらにまとめた。

まず、プロキシ環境下など、標準の証明書にないサーバを経由している場合は、エラーメッセージとして次のようなものが出るはず。

“`terminal
C:\Users\myname>pip install request
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)’),)’:

元記事を表示

数Ⅰの知識で ABC 194 C – Squared Error

# 0. 経緯
限定共有を除けば初投稿です。使用言語はPythonです。
[ABC 194 C – Squared Error](https://atcoder.jp/contests/abc194/tasks/abc194_c)
テレ東さんのYouTubeで紹介されていた問題です。

いまいちわかりやすい解説がなかったので、自分で考えてみました。
[公式解説の解法2](https://atcoder.jp/contests/abc194/editorial/826)とほとんど同じですが、シグマは使いません。

# 1. 式を変形する
二重ループを一重ループにするために、式を変形していきます。
* `N = 2` のとき
`A = [a, b]` とすると、
“`math
\begin{align}
(a-b)^2&=a^2-2ab+b^2\\
&=1(a^2+b^2)-2(ab)
\end{align}
“`

* `N = 3` のとき
`A = [a, b, c]` とすると、
“`mat

元記事を表示

pythonでfitbitから心拍数を取得してみる

## はじめに
 本記事では、Pythonを用いてFitbitのサーバから心拍数を取得する一連の流れを、[OAuth 2.0 tutorial page](https://dev.fitbit.com/apps/oauthinteractivetutorial)を経由させ**ない**で実装していく。また、[FitbitのPython用のライブラリ](https://dev.fitbit.com/build/reference/web-api/developer-guide/libraries-and-sample-code/)も今回は使っていない。今回実装する[ソースコードはgithub上に公開](https://github.com/datesann0109/fitbit)しているので、適宜確認してほしい。ただし、ソースコードは心拍数取得までの流れを主にしているので、実際に用いるために**アクセストークンの更新処理や、例外処理などのコードが足りていないことに注意する。**

## 全体の流れ
※この節のリンクはすべてFitbitの公式ドキュメント
– Fitbitのアカウントを作成、

元記事を表示

本日の積み上げ#3

# python学習内容
リストを学習
リストに格納した数字は左から0,1,2と数える。右からは-1,-2というふうにできる。
↓の内容で行くとa=0番目、c=2番目というふうに。

“`diff_Python
List[a,b,c,d,]
“`

また、
“`diff_python
List.append
“`
を使って、リストの中に要素を追加することができる。

“`diff_python
len(リスト名) 
“`
でリストの中に要素がいくつあるのかを調べることができる。

元記事を表示

Pythonの a//b と int(a/b) の違いが少しわかった。AtCoder ABC253-D

こんにちは、佐藤かえでです。

初めてQiitaの記事を書いています。
先日のAtCoderABC253-Dを解いていた際に、解法はあってるのになぜかACにならないということがありました。

だいたいこういうときは、floatとか小数点周りで誤差が出ているのでは?と思いいろいろ調べたのでここに記します。

# AtCoderABC253 D
まずそもそもの問題からです。
[D – FizzBuzz Sum Hard](https://atcoder.jp/contests/abc253/tasks/abc253_d)

> 問題文
>1 以上 N 以下の整数であって、A の倍数でも B の倍数でもないものの総和を求めてください。

解法としては、
1~Nまでの総和から、同区間のAの倍数の総和、同区間のBの倍数の総和を引いて、
重複するAとBの最小公倍数の倍数の総和を足せばokです。

詳しくは解説を見てください。
[解説](https://atcoder.jp/contests/abc253/editorial/4017)

## 間違いのコードと正解のコード
わたしが最初に提出した間

元記事を表示

参加日記: Pythonで解くAtCoder ABC 253 AからF(CのみC++)

# A – Median? (3つの解き方)

3つの値a,b,cをソートした時に、bが真ん中に来るかを判定すればよいです。以下の3つが考えられます。
– 案1: 実際にソートをしてbが真ん中(0-indexedでは[1])かを判定する`sorted([a,b,c])[1] == b`
– 案2: bが中央というのは、a,b,cかc,b,aの並びしかないので`(a<=b<=c) or (c<=b<=a) ` - 案3: bが中央というのはbが最大でない かつ 最小でない ならば真ん中になるので、`not (a < b and c < b) and not (b < a and b < c)` 以下2つ注意です。 - a=b=cなどのケースもあることに注意します。(`<`か`<=`など注意します) - 中央値を求めるとき、要素の数が偶数の時は定義を確認してください。真ん中の2つの平均だったり、問題によっては真ん中のどちら(小さい方か、大きい方か)が違うこともあります。 ```Python a, b, c = map(int, input().split()) # 以下のどれか pr

元記事を表示

画像処理で遊べるデモサイト「IP World」

## はじめに
画像処理(Image Processing)で手軽に遊べるデモサイトをFlaskで作りました。

画像処理の基本的なアルゴリズムを実装しているので、画像処理を今まで触った事がないという人は、良かったら触ってみて下さい。スマホでも遊べます。

↓スマホでの表示

■デモサイト
[IP World](https://jw-automation.com/ipworld)

■環境
Python, AWS(Lightsail), Flask, Docker

## デモ一覧

元記事を表示

AIで遊べるデモサイト「AI World2」

## はじめに
以前公開したAIのデモサイト「[AI World](https://qiita.com/jw-automation/items/5cbb1c1cad08010dd823)」に、4つのデモを追加しました。

今回もスマホでも遊べるので、良かったら触ってみて下さい。

↓スマホでの表示

■デモサイト
[AI World](https://jw-automation.com/aiworld)

■環境
Python, AWS(Lightsail), Flask, Doc

元記事を表示

PythonのSeleniumで楽天ラッキーくじを自動化する【ポイント不労所得】

### 楽天ラッキーくじについて

楽天ラッキーくじは、無料で楽天ポイントを獲得できるお得なサービスの一つです。
くじ一覧は[公式サイト](https://kuji.rakuten.co.jp/)にて確認することができます。

しかし、これらのくじを全て毎日手作業で引くのはとても面倒です。
そこで本記事では、Seleniumを利用して、くじ引きの自動化に挑戦しようと思います。


### 前提条件
私の実行環境は以下の通りです。
– MacBook Air (M1, 2020)
– macOS Monterey バージョン 12.3.1
– Python 3.8.9


### 事前準備
– Seleniumが利用できるPython環境を用意
– 楽天の会員登録


# 必要なライブラリのインポート
使用するライブラリの事前インストールは個人で頑張ってください。

“`python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import t

元記事を表示

Pythonを選ぶ理由

# Pythonを選ぶ理由
これを書いた自分はPythonが本業ではなく、Pythonはあくまで仕事を効率化するための小道具としての利用。

このような目的の場合、やりたいことを、手早く簡単に実現できることが重要。
特に、以下No.1またはNo.2の用途であれば、個人的にはPython一択。

|No|用途|Python以外の手段|選択|
|:–|:–|:–|:–|
|1|テキストデータの整形、変換、データ取り込み、グラフ化|手作業、エディタのマクロ機能|Python一択|
|2|Windowsで動作する簡単なGUIアプリケーションの作成|C# Windows.Forms/C言語 Win32|Python一択|
|3|Excelの自動操縦|Excel VBA|基本はExcel VBA|
|4|C言語で作られたDLLの呼び出し|普通にC言語で呼び出す|基本はDLLと同じ言語|

No.3やNo.4の場合、Pythonの豊富なライブラリと連携することで、できることの可能性が広がる。
逆にその必要が無くコーディング規模も小さければ、従来の手段が無難。

# Pythonの生産性が高い

元記事を表示

アルゴリズムのモヤモヤをPythonで解消(3): クイックソート

##### [前回] [アルゴリズムのモヤモヤをPythonで解消(2): 挿入ソート](https://qiita.com/mingchun_zhao/items/c9d329cb86cc43c6cde7)

## はじめに

`Pythonでアルゴリズムを楽しむ`、第3弾です。

## 今回登場するアルゴリズム: クイックソート

### 問題

以下8つの数字を昇順で整列せよ。
`8 4 3 7 6 5 2 1`

### 解決案

クイックソートを使用し、解決します。

– Wikipediaから[クイックソート(quicksort)](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88)
– ソートアルゴリズムで、分割統治法の一種
– 分割統治法とは、以下の問題解決手法
– そのままでは解決できない大きな問題を
– 小さな問題に分割し、その全てを解決
– 最終的に最初の問題全体を

元記事を表示

OTHERカテゴリの最新記事