- 1. Python No.01
- 2. 茶色コーダーが青Diff「いろはちゃんとマス目」を解いてみた!
- 3. 2020/04現在 僕が思う最適なmac + python + tensorflow 環境構築
- 4. scipyを使って任意の関数で最尤法フィッティング
- 5. Pythonのステップアップをしたい人に贈る便利テクニック(適時更新)
- 6. plotlyでアニメーションするグラフを作ったメモ
- 7. 区役所の PDF を半日でウェブアプリ化 (Part 2. PDF データの取り込み)
- 8. pythonwebスクレイピング-要素を一括取得
- 9. 【Python入門】Pythonで頻出の関数やメソッドのまとめ【課題形式】
- 10. 【Python】三井住友信託銀行プログラミングコンテスト2019C(DPの使いどころさん)【AtCoder】
- 11. Pythonで再帰をやってみた②(フィボナッチ数列)
- 12. LinuxでのPythonのversionの複数管理
- 13. Flask 単体テスト環境(test_client)
- 14. Seleniumを使用し自動ログイン、データ収集
- 15. Pythonでトポソを使って全方位木DPをする
- 16. python超入門書にてpipで詰まった(from: can’t read /var/mail/PIL)
- 17. 競技プログラミングでTLEのときに高速化できるアルゴリズム
- 18. Python&機械学習 勉強メモ⑥
- 19. 【Python】茶色コーダーになりました〜【AtCoder】
- 20. jupyterlab & matplotlibで作成したグラフのデータ点にリンクを貼る
Python No.01
# 任意回数inputをリストに入れる
“`sumple.py
test = list(map(int, input().split()))
“`### 関連
ABC 081 B – Shift Only
茶色コーダーが青Diff「いろはちゃんとマス目」を解いてみた!
#茶色コーダーが青Diff解いてみました!
AtCoderのレートが539な私ですが、教えてもらいながら青Diffの問題を解くことができたので、記事を書いてみました!
優しく丁寧に説明しようと思っているので、まどろっこしかったらごめんなさい>< 今回解いた問題は、[AtCoder Beginner Contest 042D-いろはちゃんとマス目](https://atcoder.jp/contests/abc042/tasks/arc058_b)です。 [私の提出リンク](https://atcoder.jp/contests/abc042/submissions/11674722) #最初の発想 まず、この問題を見た時に「とあるマスからとあるマスまでの最短経路の総数を求める」という問題に見えました。 高校数学の[組み合わせのところで出てきた問題](https://mathtrain.jp/dp)に似ているので、コンビネーションを使うのではないかと考えました。 (リンク先の問題では、コンビネーションは使っていませんが、模範解答の数式(階上を階上で割っているやつ)を式変形するとコン
2020/04現在 僕が思う最適なmac + python + tensorflow 環境構築
# 環境
macOS Catalina
python 3.7.5
pyenv 1.2.18
tensorflow 2.1.0※本記事は、macにpython3とtensorflowを入れるだけの記事です。
editorを使った環境構築の話などは一切含まないのでご了承ください:clap:# python環境 全然上手くいかない
もう嫌というほど、作っては壊しを繰り返しました。
そこで得た知見をシェアさせていただきます。# まずリセットしましょう
とにかくGitから取ってくる方法やダウンロードで展開する方法、brewなど色々な方法がインターネットに転がっていますから混乱します。
とりあえず落ち着いて酒飲もや。ではなく、uninstallしましょう。僕は、こちらの記事が参考になりました。:clap:
すべてリセットしたら、以下の考えで構築します。
– 面倒くさいですが、環境ごとに `pip install ●●` する
– 要らなくなったら壊しやすい
– tenso
scipyを使って任意の関数で最尤法フィッティング
#最尤法でフィッティング
pythonには便利なライブラリがいっぱいありますが,そのうちの一つにscipyがあります.
得られたデータ から,その確率密度分布を推定するときに,scipy.statsをよく使用します.今回,自分が作成した関数を使用して最尤法でfittingをしたので備忘録としてメモります.
下記リンクを参考にしました.
https://austinrochford.com/posts/2015-03-03-mle-python-statsmodels.htmlやり方としては,
GenericLikelihoodModelを
スーパークラスとして,新しくサブクラスを作成します.例えば今回,任意の確率密度関数として
“`math
f(x;\beta,\alpha)=2\alpha^\beta x^{\beta-1} \frac{\exp({-\alpha x})}{\Gamma(\beta)}
“`
というものを考えます.
単純にガンマ分布を2倍しただけです.“`python
import numpy as np
from scipy import
Pythonのステップアップをしたい人に贈る便利テクニック(適時更新)
## 概要
仕事でPythonを使用してLambda開発を行っています。
その中で自分で使っていたり、チームメンバーに教えているテクニックを記載しました。
ただ、テクニック1つだけで1記事かけてしまうくらい奥が深いものなのでここでは簡単な使い方のみ記載しています。
もっと詳しく知りたい!と思った人のために、[Python (テクニック名)]で検索すると詳細な情報が見れるような名前になっています。また、私の主観ではありますが[便利度・難易度]を振りました。星が多くなるほど便利・難しくなります。
### 対象者
– Pythonの基本を一通り勉強した人
– もっとPythonのことを詳しく知りたい人## 三連引用符
### 評価
便利度:☆
難易度:☆### 概要
複数行の文字列を使用したい時(SQL文の記述など)に使用しています。
### 使用例
“`python:三連引用符
mojis = “””
書き方はダブルクォーテーションで
文章を囲めばOKです。
“””
print(mojis)# => 書き方はダブルクォーテーションで
# => 文章を囲めば
plotlyでアニメーションするグラフを作ったメモ
# Plotlyでアニメーションするグラフを作ったメモ
## 概要
* np.arrayを入力するとアニメーションするグラフを作成する(時系列データ)## ソースコード
“`python
import pandas as pd
import numpy as np
import plotly.express as pxdef create_animation_graph(input_array: np.array, start: str = ‘1900-01-01 0:00’, g_type: str = ‘line’, y_label: str = ‘value’,
x_label: str = ‘time’) -> object:
“””
np.arrayを入力すると、plotlyのアニメーションするグラフを返す
:param input_array:データのnp.array
:param start:開始時刻
:param g_type:グラフタイプ ‘line’,’bar’,
区役所の PDF を半日でウェブアプリ化 (Part 2. PDF データの取り込み)
## はじめに
コロナ対策の一環として、テイクアウト営業に切り替えて営業している地域のお店がたくさんあります。ただ、どこでテイクアウト営業をしているか、周知が課題です。文京区でも、テイクアウト営業を模索しているお店が多く、区もこれを支援する活動を始めました。([出前・持ち帰り 可能店を一覧に 文京区などリスト作成 日経新聞4月3日](https://r.nikkei.com/article/DGKKZO57585020S0A400C2L92000?s=3) )
ただ、現時点では [このリスト](http://www.b-kushoren.com/pdf/bunkyo-takeout-list.pdf) は PDF 形式でした。[スマートフォンで見れるように](https://bunkyotakeouts.glideapp.io/) してこそ価値があるはず。そこで PDF のデータをエクセルに抽出してみることにしました。
## PDF のデータをエクセルに抽出
tabula-py を試したところ、十分なデータが抽出できました。成功事例を簡単にまとめておきます。
もちろん、元となる P
pythonwebスクレイピング-要素を一括取得
>PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】の9-10勉強メモ
https://www.udemy.com/course/python-scraping-beginner/
スクレイピング対象ページ(PW制限あり)
https://scraping-for-beginner.herokuapp.com/mypage#要件: 下記テーブルの右側部分のテキスト情報を一括取得すること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68847/96f844a7-3785-04ca-debe-04bbb581f894.png)F12を押し、開発ツールで確認すると右側のテキストは、すべてtdでマークアップされていることがわかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68847/2a57626f-813a-2872-e765-a7f6c725b716.pn
【Python入門】Pythonで頻出の関数やメソッドのまとめ【課題形式】
# はじめに
Pythonには、様々な組み込み関数やメソッドが用意されています。
その中でも頻繁に使用するものをまとめてみました。# 概要
Pythonを理解する上で、[トミーさんブログ](https://obgynai.com/python-roadmap/)の課題が非常に役立ったので、本記事についても課題形式で進めていきます。
不明な点がありましたら、リンク先にて詳しく説明されているので、そちらを参考にしてみてください。# 対象者
以下の方向けの記事となっています。
* Pythonのインストールや、JupyterNotebookの環境構築が完了済み。
* 少しPythonを触ってみた。
* 自分の実力を確認したい!# 環境
* macOS High Sierra 10.13.6
* Python 3.7.6# 実装内容
## 課題1 入力金額の平均金額を算出する
### 技術要素
* リストと頻出メソッドの利用(append)
* リストを計算する関数の利用(sum、len)
* 入力用の関数を利用(input)
* 条件分岐の利用### 仕様概要
* 参加者
【Python】三井住友信託銀行プログラミングコンテスト2019C(DPの使いどころさん)【AtCoder】
>※この記事は、DP(動的計画法)の基本中の基本である
かえるくん問題2問がとけることを前提としています。>- [Frog1](https://atcoder.jp/contests/dp/tasks/dp_a)
– [Frog2](https://atcoder.jp/contests/dp/tasks/dp_b)DPでとけるんだ!!!
と感動した問題がありましたので記事にします。
DPの考え方は知っているけれども、実際の問題と結びつかない!
という人は参考になるかも(ならないかもw)#[三井住友信託銀行プログラミングコンテスト2019C](https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_c)
Difficulty:205
問題を読んで、bit全探索や6重for文が一瞬頭をよぎりましたがダメそう。ちなみにDPが思いつかなくても解けます。(記事の最後に別解として載せておきます。)
しかしDPが思いつかなかった場合、
たぶん法則性をみつけるのに15分くらいかかる気がします。**レートをあげるには
Pythonで再帰をやってみた②(フィボナッチ数列)
以前再帰を使った回文判定、Fractal図形の描画を行いましたが、今回は第2弾です。
#フィボナッチ数列
フィボナッチ数列とは、
1 1 2 3 5 8 13…
のように前2つの数字を足したものが次の項になるという数列です。
(例)第4項の3はその前2つの1と2の和
今回は再帰を使ってフィボナッチ数列の第n項を知るというプログラムを書きました。“`Python
def fibonacci(n):
if n < 3: return 1 else: return fibonacci(n-1) + fibonacci(n-2) ``` もし1項か2項なら1、それ以降は1つ前と2つ前の項に戻り、さらに1つ前、2つ前にもどるという形です。 少し分かりにくいですが、 n=5なら4項、3項の和が必要なので2,1項に戻って和を求めていきます。 これでn=10なら55、n=20なら6765となります(数が大きくなればなるほど時間がかかります)。
LinuxでのPythonのversionの複数管理
http://www.nemotos.net/?p=2633
を見れば良い。
Flask 単体テスト環境(test_client)
# 概要
FlaskのAPIテストをするのに「POST MAN」を使用していましたが、今更Flaskでの単体テスト方法を学んだんで備忘録。
# 例
テスト用のコードは「test.py」として別に分けています。「app.py」に簡単なルーティング設定をしています。
“`python:app.py
from flask import Flask, jsonify, request
app = Flask(__name__)@app.route(“/”)
def home():
if request.is_json: # jsonのデータ指定
return jsonify({“msg”: “fault massage”}), 400
return jsonify({“msg”: “success message”}), 200if __name__ == “__main__”:
app.run()“`
今回はget通信としていますが、これはgetのところをpost等にすればその他通信が可能です。
“`python:test.py
import
Seleniumを使用し自動ログイン、データ収集
>PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】の6-8勉強メモ
https://www.udemy.com/course/python-scraping-beginner/##(基本設定)Seleniumからwebdriverをimport
“`
from selenium import webdriver
“`
##Chromeを開いて、対象URLを開く
“`
browser = webdriver.Chrome()
browser.get(‘https://scraping-for-beginner.herokuapp.com/login_page’)
“`#Seleniumを使用し自動ログイン~Username/Passwordを自動入力
## フォームのidを取得該当ページのフォーム部分のidを開発ツールを使用し取得
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68847/6ad1f4e5-933e-f330-476e-976
Pythonでトポソを使って全方位木DPをする
# この記事でやること
Pythonでトポソを使って全方位DPをするのが目標です。最初にこの記事での実装方針を書いておきます。
### 実装方法
1. トポソを使う
1. 抽象化
1. 逆元がない場合にも対応
1. 左右累積和は配列を1つだけ持つ記事としては、2. 抽象化 するための理論面の整備がメインになりそうです。
## 経緯
前回の記事の最後 に、気が向いたら全方位木 DP も書くと言ったら、早く気が向いてほしいと言われたので気を向けることにしました。
![全方位木DP_0.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/609864/c3345dc7-40bb-5397-ce46-3ed0a4585bea.jpeg)
python超入門書にてpipで詰まった(from: can’t read /var/mail/PIL)
#使用している本について
今回の件に出てくる本はSB Creativeの「[確かな力が身につくPython「超」入門](https://www.amazon.co.jp/確かな力が身につくPython「超」入門-確かな力が身につく「超」入門シリーズ-鎌田-正浩/dp/4797384409/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=python+%E8%B6%85&qid=1584289306&sr=8-3)」です。#本題
この本のChapter6では、外部ライブラリを用いた話をします。その例として、Pillowを用います。その際、pipコマンドを使用します。ここで一つ詰まったことがあり、調べてみたところネット上でも同じような悩みを持っている方がいたので記事にしました。まずは本の通りPillowをインストールし、指示通りにしてみましょう。“`python
$ pip install Pillow # MacOSならば’pip’を’pip3’に変換してください。
(結果略)
$ fr
競技プログラミングでTLEのときに高速化できるアルゴリズム
# 暇があり、競プロをやっているときに気づいたことのMemo
## Level1#### 累積和
配列の部分和を求め比較する必要がある際、一回づつ部分和を求めるのではなく、前項(i項まで)の和にi+1の項を加えてそこから部分和の範囲を考慮したほうが早い。例上記が正解、下記だとTLEになる。“` python:ABC_D_Dice_in_Line.py
for i in range(k, len(p)):
saveSum = saveSum + p[i] – p[i – k]
if saveSum > M:
M = saveSum“`
“` python:ABC_D_Dice_in_Line.py
for i in range(len(p) – k + 1):
# 一回づつlistの和を求めているから計算量が多い
savesum = sum(p[i:i + k])
if savesum > M:
M = savesum“`
Python&機械学習 勉強メモ⑥
#はじめに
① https://qiita.com/yohiro/items/04984927d0b455700cd1
② https://qiita.com/yohiro/items/5aab5d28aef57ccbb19c
③ https://qiita.com/yohiro/items/cc9bc2631c0306f813b5
④ https://qiita.com/yohiro/items/d376f44fe66831599d0b
⑤ https://qiita.com/yohiro/items/3abaf7b610fbcaa01b9c
の続き– 参考教材:[Udemy みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習](https://www.udemy.com/course/learning-ai/)
– 使用ライブラリ:scikit-learn#課題設定
手書きの数字画像(8×8 px)から、書いてある数字を認識する。#ソースコード
##インポート
“`python
from sklearn import datasets
from skl
【Python】茶色コーダーになりました〜【AtCoder】
#【祝】茶色コーダーになりました〜
12回目でようやく茶色コーダー!!!
一番初めは2重for文も書けなかったのですごい成長!!!
パチパチパチ(拍手)〜
##茶色コーダーになるまでにやったこと
競プロ初心者に参考になるかも!
ということでこれまでやってきた事を記事として残しておきます!###①けんちょんさんの記事をいろいろ読んでわくわくする!
一番最初に読んだ記事はこれ!
[AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~](https://qiita.com/drken/items/fd4e5e3630d0f5859067)
まずはこれを一通り見てから、実際にPythonで解いてみました!
jupyterlab & matplotlibで作成したグラフのデータ点にリンクを貼る
# この記事について
記事タイトルの通りのことがやりたかった。
また使うことがあるかも知れないので、その方法を記録しておく。# 手順
– matplotlib で リンク付きのグラフを作成
– `svg` 形式で保存
– Chrome などのブラウザでファイルを開く# 環境
自分は jupyter-lab での作業でした。
バージョンはこんな感じ(pip freeze の結果より)“`bash
jupyterlab-server==1.0.7
matplotlib==3.2.1
“`# ファイル作成
“`python
# 各種設定
import matplotlib.pyplot as plt
from IPython.display import set_matplotlib_formatsset_matplotlib_formats(“svg”)
# テストデータ準備
data_list = [[0, 1], [1,0], [1,1]]
label_list = [‘google’, ‘yahoo’, ‘lightcafe’]
url_list = [