Python3関連のことを調べてみた2020年05月26日

Python3関連のことを調べてみた2020年05月26日

数値に対応するひらがなの言葉を辞書からリストアップするコード

与えられた数値に対応するひらがなの言葉を辞書からリストアップするコードを書いてみました。
日本語の辞書は、ひらがなで、\nで区切られた辞書ならばよいです。
関連:Qiita:かなを数値に換算して和を求めるコード
文字の合計の求め方は、shiracamusさんのコードを参考にしました。

“`kl.py
#!/usr/bin/python3
import sys
table = “ あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろわゐうゑをん@@@@がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽゃゅょっー”

v=int(sys.argv[1])
words = [ x for x in open(“jm.txt”) ] #jm.txtが辞書ファイルです。
for a in words:
total = sum(table.index(kana) for kana in a if kana in t

元記事を表示

Flask(v1.1.x)+SQLAlchemyでのdb.create_all()ができない

## 概要
Flask(v1.1.x)のチュートリアルを大体やった後、以下の記事を参考にFlask(v1.1.x)+SQLAlchemyでWebアプリを開発途中、

“`
python
>>> from app import db
>>> db.create_al()
“`

でdbがインストールできず、その次のdb.create_all()もできませんでした。。。(記事自体は非常に丁寧でとても参考になりました。)
調べたけどもFlaskのバージョン1.1.xに対応した記事は特になかったので同じような人がいた場合の参考にまとめます。

参考記事
> [FlaskとPostgreSQLでウェブアプリを作ってHerokuで無料で運用する – Qiita](https://qiita.com/croquette0212/items/9b4dc5377e7d6f292671)

## 環境
* OS : MaxOS Catalina version 10.15.1
* Python : 3.7.7
* Flask==1.1.2
* Flask-SQLAlchemy==2.4.1

#

元記事を表示

かなを数値に換算して和を求めるコード

ひらがなを引数にとり、数値に換算して和を求めるコードを示します。
拗音、促音、長音には対応していません。拗音はリストにすると、対応できますが、促音、長音は対応が恣意的になってしまうので、今の所、これだけです。かな数値対応は、以下の表を参考にしています。romaji-hyou

“`kanacnt.py
#!/usr/bin/python3
import sys

kana = “ あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやいゆえよらりるれろわゐうゑをん@@@@がぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ”

a = sys.argv[1]
cnt = 0
for i in range(len(a)):
if (a[i] in kana):
cnt += kana.index(a[i])
print(cnt)
“`

実行例

“`
$ ./kanacnt.py ありす
56
$ ./kanacnt.

元記事を表示

DataLoaderからファイル名を見たい

## はじめに
PytorchのDataLoaderとても使いやすくていいですよね.個人的に分類問題をしたときに分類に失敗したファイル名を見れたら分析しやすいと思ったのでファイル名の取り出し方を備忘録として記載しておきます.

## Pathを取り出す
何ら難しいことはないですがDataloaderから直接取り出します.
PyTorchの[TRANSFER LEARNING FOR COMPUTER VISION TUTORIAL](https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html#load-data) [1]を参考にしてdataloadersを作ります.

“`python
IMAGE_SIZE=224
BATCH_SIZE=20
TRAIN = ‘train’
VAL = ‘val’
DATA_DIR = ‘H:\\dataset/predata/’ # select your dataset directory
DEVICE = torch.device(“cuda:0” if torc

元記事を表示

PythonでTAB補完したい

# Windowsの場合
mac・Linuxの方は読み飛ばしてください
TAB補完には`readline`モジュールが必要ですが、Windowsにはデフォルトでは`readline`モジュールがありません
pipで入れようとしてもだめなので、以下を実行しましょう。

“`:コマンドプロンプト
pip install pyreadline
“`

# TAB補完を有効化
Pythonのシェルを開いて、以下を貼り付けます

“`Python3
import rlcompleter
import readline
readline.parse_and_bind(‘tab: complete’)
“`
これで、TAB補完が有効になりました。

# 自動で有効化したい
Pythonは実行時に`usercustomize.py`ファイルが実行されるらしいです。
場所は以下の方法で調べられます。

“`python
import site
print(site.getusersitepackages())
“`
このディレクトリはデフォルトだと存在しないので、作成しましょう。
次に、ここ

元記事を表示

【EC2】python3の仮想環境構築と.pyファイル実行 & 対話モードに入る方法

#【EC2】python3の仮想環境構築と.pyファイル実行 & 対話モードに入る方法

###主な内容
・python3のインストール
・仮想環境用のフォルダ作成
・仮想環境の有効化
・python実行

##手順
EC2インスタンスにログインしている状態で、以下手順を実行。[(公式ページ)](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-linux-python3-boto3/)

“`python:
#パッケージインデックスのアップデート
[ec2-user ~]$ yum check-update

#python3の有無確認
[ec2-user ~]$ yum list installed | grep -i python3

#pythonのインストール(インストールされていない場合のみ)
[ec2-user ~]$ sudo yum install python3 -y

#仮想環境の構築
[ec2-user ~]$ python3 -m venv my_app/env

#仮想環

元記事を表示

Python3 を子供に教えるためにオセロを作ってみた(4)

# オセロゲームのプログラムを解説していきましょう

## 関数について理解しよう
 プログラムでは関数はとても大切な要素です。関数というのは一連の動作を機能としてくるんだものを指します。

 例えば、「食べる」という機能には、以下のような動作が含まれています。
1. 口に入れる
2. 咀嚼する
3. 味わう
4. 飲み込む
5. (例外的に危険を感じたら吐き出すとか)

この5ステップのロジックを、何か食べるたびに書いているとコードが冗長になりますし、もしかすると「食べる」機能の中に「香りも確かめるべき」みたいな話しが出ると、全ての食べるロジックを修正して回らないとならないから大変です。ですので何回か出現するような同じコードは**関数**として定義し、食べる内容が変わる部分は**変数**として渡してあげるようにします。

 Python で関数を定義するには、以下のように記述します。パラメータとして渡す物が可変になっていれば、どんなものでも食べることができる「食べる」関数ができあがります。

“`python
def EatFood(food):
“`
 カレーを食べさせたけれ

元記事を表示

Excelでこんなことやってたよなー、をPythonに置き換える その3

今日はデータサイエンスチックな標準化。とはいうもののこれまでは単に比較しやすかったので処理してた。
エクセルではSTANDARDIZE関数でやるけど、pythonだとどうなるのか調べてみた。

## 標準化とは?
単位とか平均値の違うデータ同士を比べやすくするための処理。
値から平均を引いて標準偏差で割ると算出できます。例えば

“`
A : 60000
 平均   = 48000
 標準偏差 = 8000

B : 80000
平均   = 67000
標準偏差 = 9500
“`

みたいなとき、パッとどっちが相対的に順位高いのかわからないとき

“`
Aの標準化 = (60000 ー 48000) / 8000 = 1.5
Bの標準化 = (80000 ー 67000) / 9000 = 1.4
“`
とすると比較しやすいよねってやつです。
有名なのは、偏差値ですね。
偏差値は、元の点数を標準化して、点数(=Z値)を10倍して50足したものです。

## 標準化

“`Python
from sklearn.preprocessing import Standard

元記事を表示

ゼロから始めるLeetCode Day36「155. Min Stack」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day35「160. Intersection of Two Linked Lists」(https://qiita.com/KueharX/items/f9c01184085586fbe491)

基本的にeasyのacceptanceが高い順

元記事を表示

【初心者向け】10行以内のスクリプト(8.foliumで地図のプロット【2】

### 【初心者向け】10行以内のスクリプト(8.foliumで地図のプロット【2】)
pythonで色々なライブラリを使えば、「少ないコードでもちょっとした事が出来て、少なければ5行程でもちょっとしたスクリプトが作れ、便利だな。」と思ったので、pythonやその他、コマンドを羅列しただけのものも出てくるかも知れませんが、10行程のスクリプトを不定期で投稿してみようと思います。

**第8回**として、以前、「foliumで銀座周辺の地図をマーカー付きで3ヶ所プロットするスクリプトを投稿したのですが、事前に場所と緯度・経度をcsvで用意してプロットする様にしてみました。

拠点が多い場合は、この方法が可読性・メンテナンス性が良さそうです。

このスクリプトでは、以下3ヶ所をプロットしました。
– 有楽町駅: 位置情報【35.6749187,139.7606366】
– 銀座コリドー街: 位置情報【35.6703699,139.7573871】
– Ginza-SIX: 位置情報【35.6695908,139.7618857】

【環境】

元記事を表示

【1日1写経】Predict employee attrition【Daily_Coding_001】

## 初めに
– 本記事は、python・機械学習等々を独学している小生の備忘録的な記事になります。
– 「自身が気になったコードを写経しながら勉強していく」という、きわめてシンプルなものになります。
– 建設的なコメントを頂けますと幸いです(気に入ったら`LGTM` & `ストック`してください)。

## お題:IBM HR Analytics Employee Attrition & Performance
– 今回のお題は、**IBM HR Analytics Employee Attrition & Performance**です。kaggleに記載のあった説明によると、**「従業員の退職理由」**を探る問題のようです。
– 今回、以下のyoutubeの動画を見つつ写経していきました。

Link:[Predict Employee Attrition Using Machine Learning & Python](https://www.youtube.com/watch?v=CpCs–DpJh0&t=144s)

データはkaggleから取ってきました。

Link:

元記事を表示

JSONファイルの日本語を表示する

# 問題
Pythonのrequestsで日本語が含まれているJSON形式のデータを取得時の文字化け問題

# 解決策

下記の行を追加したら日本語が正しく表示されました〜

“`
r.headers = {“Content-Type”: “application/json; charset=utf-8”}
“`

こんな感じ↓

“`python
r = requests.get(url)
r.headers = {“Content-Type”: “application/json; charset=utf-8”}
datas = r.json()
print(datas)
“`

元記事を表示

深さ優先探索と幅優先探索についてPythonで考える

こんにちは:grinning:
今回は迷路を使って深さ優先探索と幅優先探索について考える。
今回使用する迷路:arrow_down:
2020-05-25_16h23_17.png

#入力
入力はn行行われる。

– 1行目は迷路のスタート地点とゴール地点
– 2行目は迷路の縦の長さと横の長さ
– 3~n行目は迷路の情報

n-2は迷路の縦の長さ、マスの無いところは#で与えられる。
ex.)

“`
S G
3 5
# B E F G
S A C H #
# D # # #
“`
#出力
出力は3行行われる。
1行目はスタート地点とゴール地点の距離
2行目は探索の回数
3行目はスタート地点からゴール地点へのルート
ex.)

“`
スタート地点とゴール地点の距離:5
探索回数:10
ルート:G <= F <

元記事を表示

【覚書】pythonのstring.Template.substituteでは日本語キーを使えない

# どういうこっちゃ
こういうこと。
Python 3.7.2で確認。

“`.py
import string

# ↓これだと ValueError: Invalid placeholder in string が発生する
# template = string.Template(‘eng_keyは${eng_key}です。日本語キーは${日本語キー}です’)

template = string.Template(‘eng_keyは${eng_key}です。日本語キーは${ja_key}です’)
data = {
‘eng_key’: ‘eng_hogehoge’,
‘日本語キー’: ‘ja_ほげほげ’,
‘ja_key’: ‘ja_hogehoge’
}

print(template.substitute(data))
# eng_keyはeng_hogehogeです。日本語キーはja_hogehogeです
“`

dict内に日本語のキーを持っている場合は注意しましょう。

元記事を表示

Python3 を子供に教えるためにオセロを作ってみた(3)

# プログラムは動かして動きを見ながら解説を見て学ぶべし
 とにかくプログラムは動かしてナンボです。そこから色々いじってみることで理解が促進される効果もありますので、今日はオセロゲームのソースを少々長いですがまずは公開します。これを PyCharom の新しいプロジェクトとして作ってみることにしましょう。

 PyCharm を起動してファイルメニューから「新規プロジェクト」を作成します。プロジェクト名は**オセロ**とでも付けてください。
![スクリーンショット 2020-05-24 17.06.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265655/c67f0df8-5ee5-a678-7989-7b75b0840c3a.png)

 プロジェクトを作成したら、ファイルメニューから「新規…」を選択して Pythonファイルを選択して、othello_cui.py などと名前を付けて Enterキーを押すと左のプロジェクトペインの中に othello_cui.py が現れます。

![ス

元記事を表示

Pythonでソートをする。ついでにアルゴリズムを考えてみる。

#メソッド、組み込み関数でのソート
まずは以下のリストについてソートすることを考えてみる。

“`python
data = [5, 3, 2, 4, 1, 6]
“`

Pythonでリスト型を昇順または降順にソートするにはsort()とsorted()の二種類が存在する。
– リスト型のメソッドであるsort():そのリスト自体をソート
– 組み込み関数sorted():ソートされたリストを新しく戻り値として返す
##リスト型のメソッドsort()
もとのリスト自体を書き換える。

“`python
data.sort()
print(data)
# [1, 2, 3, 4, 5, 6]
“`

デフォルトでは昇順のソートになっている。降順にソートするためには引数reverseをTrueにする。

“`python
data.sort(reverse = True)
print(data)
# [6, 5, 4, 3, 2, 1]
“`

注意が必要なことはsort()では戻り値はNoneである。

“`python
x = data.sort()
print(x

元記事を表示

機械学習の学習サイト紹介

#はじめに
*インフォマティクス初学者が参照した学習サイトの紹介です。

初めまして。
メーカーで材料の研究開発に従事している技術者です。
最近はインフォマティクス系にも関わり、試行錯誤している最中です。

感染症拡大により在宅勤務が多くなってから、
現場で実験ができなくなったため、インフォマティクスに関する学習をしていました。
備忘録として参照させていただいたサイトをまとめました。
*書籍や有料サイトなども活用していますが、今回は無料学習サイトに限定しました。

#学習サイト一覧
##1. データサイエンスのためのPython入門講座
米国でデータサイエンティストとして御活躍されているかめさんのブログです。[[1]](https://datawokagaku.com/python_for_ds_summary/
)

[1] https://datawokagaku.com/python_for_ds_summary/

初期の環境構築から基本的な動作方法まで詳細に記載されており、初学者の私でも何とか環境構築することができました。
今でも問題が発生した時には振り返

元記事を表示

Twitter Streaming API用の完璧で汎用的なモジュールを作ってみる

こんにちは!すずともです!
今回は、TwitterのStreaming APIについて。

#(1)Twitter Streaming APIとは
TweetDeckみたいに、ツイートをリアルタイムで取得できるAPIのことです。

といっても、ユーザのTLをリアルタイムで取得できる「User Streams API」は2年ほど前に廃止されました。

現在利用できるStreaming APIは「Filter realtime Tweets」というものです。
これは、検索条件を指定して、その条件にマッチしているツイートをリアルタイムできるAPIです。

これには、2種類のAPIが用意されています。

– statuses/filter API
– PowerTrack API

この2つの違いは、無料版か有料版かの違いで様々な制限の違いがあります。
詳しくは、[OverView](https://developer.twitter.com/en/docs/tweets/filter-realtime/overview)のページを見てください。

僕はそんなにお金持ちじゃないので、今回は無料

元記事を表示

ゼロから始めるLeetCode Day35「160. Intersection of Two Linked Lists」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day34「118. Pascal’s Triangle」](https://qiita.com/KueharX/items/75e711c6b051685d490c)

基本的にeasyのacceptanceが高い順から解いていこうかと思います

元記事を表示

製薬企業研究者がPythonの内包表記についてまとめてみた

# はじめに

ここでは、Pythonの内包表記について、覚えておくと役に立つことをまとめてみます。

# リスト内包表記

“`python
nums = [1, 2, 3, 4, 5]

nums_double = [x * 2 for x in nums] # リストnumsの要素をそれぞれ2倍する
print(nums_double) # [2, 4, 6, 8, 10]

nums_even = [x for x in nums if x % 2 == 0]
print(nums_even) # [2, 4]
“`

“`python
nums_2 = [[1, 2], [3, 4]]

nums_2_odd = [odd for nums in nums_2 for odd in nums]
print(nums_2_odd) # [1, 2, 3, 4]
“`

“`python
nums_set = {1, 2, 3, 4, 5}

nums_set_square = {x**2 for x in nums_set}
print(nums_set_squa

元記事を表示

OTHERカテゴリの最新記事