- 0.0.1. PDFのA5縦原稿を8ページをA3両面で印刷して24ページごとに中綴じ折丁の面付をすることをpythonで実施
- 0.0.2. 仮想通貨をローソク足でグラフ出力
- 0.0.3. python 算術演算子一覧
- 0.0.4. venvのpython仮想環境をgitで共有する
- 0.0.5. 【Python 3】Windowsでバージョン確認する方法
- 0.0.6. sqlite3でPython変数を正しくバインドする方法
- 0.0.7. Raspberry piとTVをHDMIで繋げてTVを制御する。
- 0.0.8. 【Django】更新ページの作り方
- 0.0.9. PythonでMatplotlibの使い方がわからないときは、公式リファレンスを見よう
- 0.0.10. 【メモ】Dockerでseleniumスクレイピング始め方
- 0.0.11. nfcpyの読み取り機能をhttp経由で呼び出し可能にする。
- 0.0.12. python学習 – 3日目
- 0.0.13. python の標準出力を tee で 表示/保存 できなかった件
- 0.0.14. lxml.etree で XML の基本的なことをもう少し触ってみる(etree.XML)
- 0.0.15. pythonなのか、python3なのか。
- 0.0.16. 【Python】SQLAlchemyでMySQLに接続する
- 0.0.17. 機械学習〜ロジスティック回帰 数学
- 0.0.18. 超初心者がe869120さんの【分野別 初中級者が解くべき過去問精選 100 問】をpythonで解いてみた!Part2
- 1. ALDS_11_C – 幅優先探索
PDFのA5縦原稿を8ページをA3両面で印刷して24ページごとに中綴じ折丁の面付をすることをpythonで実施
# 概要
A5原稿をA3両面で印刷するためのデーター加工を自動化するpythonで実現する方法を調べ、実装してみた。
## pyPDF2について
PDFを加工するためにPyMuPDFやPikePDF、PyPDF3、PyPDF4、pdfrwやpdfminerなども使えないか探したが[pyPDF2]( https://pypdf2.readthedocs.io/)が歴史もあり現時点でも活発に保守されておりどうやら日本語も使える上にdecrypt support V5 and AES-128, AES-256もそろそろのようなので使ってみることにした。
* [他のPDF操作系との比較](https://pypdf2.readthedocs.io/en/latest/meta/comparisons.html)
* [Martin Thoma took over maintenance of PyPDF2 in April 2022.](https://pypdf2.readthedocs.io/en/latest/meta/history.html)
* [AES Encryption
仮想通貨をローソク足でグラフ出力
# Ta-Libraryとは
金融データをテクニカル指標などで分析が行えるツール
https://mrjbq7.github.io/ta-lib/# 準備
## 必要ライブラリをインストールする
“`
!brew install ta-lib
!pip install TA-Lib mplfinance
“`
## Binanceから過去データを取得
下記URLを参考に取得# 出力
使用するライブラリをimportします。
“`
import talib
import pandas as pd
import mplfinance as mpf
“`取得したデータをdatetime型に変更して読み込める形にする。
“`
df[‘date’] = pd.to_datetime(df[‘Time’])
df = df[[‘Open’, ‘High’, ‘Low’, ‘Close’, ‘Volume’,’date’]].set_
python 算術演算子一覧
(この記事はqiitaのMarkdown記法練習記事です)
***
– 足し算
– \+ を使うと足し算ができる
“` py
#+の使用例
20 + 10
>>>30
“`
– \+は文字列の結合もできる
“` py
#+(文字列の結合)の使用例
“Hello” + “World!”
>>>HelloWorld!
“`
– 引き算
– \- を使うと引き算ができる
“` py
#-の使用例
20 – 10
>>>10
“`
– 掛け算
– \* を使うと掛け算ができる
“` py
#*の使用例
20 * 10
>>>200
“`
– \*は文字列の繰り返しもできる
“` py
#*の使用例
“hello” * 2
>>>hellohello
“`
– 割り算
– / を使うと割り算ができる
“` py
#/の使用例
venvのpython仮想環境をgitで共有する
“`terminal: terminal
mkdir test
cd test
mkdir a.git
cd a.git
git init –bare
cd ..
git clone a.git
cd a
curl -o .gitignore https://raw.githubusercontent.com/github/gitignore/main/Global/VirtualEnv.gitignorepython3 -m venv .venv
source .venv/bin/activate
pip install pip-autoremove matplotlib
pip freeze > requirements.txt
deactivate
git add -A
git commit -m “initial commit”
git pushcd ..
mkdir b
cd b
git clone ../a.git
cd apython3 -m venv .venv
source .venv/bin/activate
pip install -r requ
【Python 3】Windowsでバージョン確認する方法
# はじめに
WindowsにインストールしたPythonのバージョン確認方法を調べた結果の備忘録。
# 動作環境
– Windows10 バージョン 21H1
# 確認手順
## 1.コマンドプロンプト起動
## 2.バージョン確認コマンド実行
“`shell-session
>python –version
Python 3.10.5>python -V
Python 3.10.5>python -VV
Python 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)]
“`-VVは バージョン3.6で追加されたらしい。
# 備考
– [ 3.10.4 Documentation » Python のセットアップと利用 » 1. コマンドラインと環境](https://docs.python.org/ja/3/using/cmdline.html)
sqlite3でPython変数を正しくバインドする方法
:::note warn
記事の内容はあくまで個人の考えに基づくものであり、組織を代表するものではありません。
:::sqlite3を使って開発をする中で、よろしくない方法でPython変数をバインドしていた。
社内のコードレビューでご指摘いただき、事前に気づくことができた。
備忘も兼ねてまとめておく。# アンチパターン
もともと下記のような方法でPython変数をバインドしていた。
“`python
import sqlite3name = “test user”
age = 20con = sqlite3.connect(‘example.db’)
cur = con.cursor()
cur.execute(“create table user(id integer primary key autoincrement, name text, age integer);”)
cur.execute(“insert into user(name, age) values(‘{}’, {});”.format(name, age))
con.commit()
co
Raspberry piとTVをHDMIで繋げてTVを制御する。
# 前書き
Raspberry pi4bもjetson nanoも定価で全然売っておらず、買えてません。欲しい・・・(前回に続いて2回目。)前回の記事[LINE BOT経由でパパの居場所(androidスマホ)を地図で教える(成功編)](https://qiita.com/TVCAdev/items/ec08b008ddc3d62e629b)に続いて、TVとHDMIでつながっているRaspberry piを活用してTVを制御してみます。
子供が学校から帰ってきて、TVばっかり見て困っているので、考えてみました。TVの電源ON/OFFのログが見れたり、TVを起動禁止(10秒周期でTV電源のON/OFFを検知し、ONだったら消す)にしたりできます。
【Django】更新ページの作り方
DjangoアプリでDB情報を更新するページを作成しましたので、備忘として残します
## 処理フロー
ユーザーが更新したいDB情報を取得して更新するまでのフローは以下になります。
1. ユーザーがDB更新ページを接続する(urls.pyが実行される)
2. urls.pyに記載しているviews.pyの関数を実行する
3. views.pyの関数で渡されてたpkを元にDB情報を検索するクエリを投げる
4. 検索結果から取得したDB情報をhtmlへ渡して表示する
5. ユーザーが入力フォームからDB情報を更新する(urls.pyがPOSTメソッドで実行される)
6. urls.pyに記載しているviews.pyの関数をPOSTメソッドで実行される
7. views.pyでDB情報を更新するSQLが実行される処理フローずつ説明していきます
## 1. ユーザーDB更新ページを接続する
クライアントからhttp://example.com/blog/1/updateというアドレスへアクセスします。
/blog/1/updateというパスがurls.pyの以下のような記載部分に
PythonでMatplotlibの使い方がわからないときは、公式リファレンスを見よう
# この記事の概要
今年度(記事を記載している2022年度)にほぼ初めてPythonを覚え、データ可視化の方法などを一通り覚えた駆け出しデータサイエンティストですが、未だにMatplotlibが使いこなせないので、この際だから頭の整理をしてしまおう! というものになります。# Matplotlibには2つの記述方法がある
あまり英語が得意じゃないのですが、Matplotlibの公式サイトを読み解きながら、2つの方法をまとめていきます。## その1.”pyplot”による方法
とりあえずネットにあるコードをぺたぺた貼るときに、大体初めに覚えるものです。
公式サイトでは「like MATLAB」と書いてありますね。ついでに
「オブジェクト指向よりフレキシブルじゃないから、Axesオブジェクトから呼び出すのがいいよ!」
と言っているようです(若干意訳気味ですが)。
“`import.py
import pandas as pd
import numpy as np
import matplotlib.pyp
【メモ】Dockerでseleniumスクレイピング始め方
“`Dockerfile:/Dockerfile
FROM lambci/lambda:build-python3.8COPY PROJECTNAME /var/task/PROJECTNAME
COPY tests /var/task/testsWORKDIR /opt/python/
RUN yum install -y unzip && \
curl -SL https://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip > chromedriver.zip && \
curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-55/stable-headless-chromium-amazonlinux-2017-03.zip > headless-chromium.zip && \
unzip chromedriver.zip && \
unzip
nfcpyの読み取り機能をhttp経由で呼び出し可能にする。
# 概要
人「NFCを読み取るアプリ欲しい」
蝦「はい」
人「見た目はリッチにしたい」
蝦「はい」
人「NFCを読むところまではPythonでできたのでいい感じにしてほしい」
蝦「はい」# 動作環境
– ASUS Chromebook C434TA +crostini(Debian)
– python3.7以降(asyicioを使用します。)
– NFCリーダー: RC-S380/S# 基本構成
– Uvicornでhttpリクエストの受付
– FastAPIでリクエストを処理する。
– nfcpyでUSB接続したNFCリーダーを操作する。# 実際のコード
## 読み取り処理部分
読み取り部分は至極単純。Pythonにはアロー関数が無いので関数内で関数を宣言している。“`python3:nfc.py
import nfc# NFCでデータを読み込むための関数
def read_nfc_tag(clf):
data = {}
# アロー関数的な処理
def connected(tag):
# スコープの扱いに注意
python学習 – 3日目
こんにちは★
# おしながき
今日は以下をやっていきまする。– 変数
– 定数
– 予約語# 変数
何かの値に名前を付けることができます!
Windowsと違って、Pythonは大文字小文字の区別つくので気を付けます。
プログラムの処理が終了するまで変数の値は保持されるので、よろしくお願いいたします。
プログラム終了後も保持したい場合は、DBとかに保存する必要ありけり。## 変数のコード例
“`実行例
command = “cat”
neko = “Cat”print(command)
print(neko)
“`“`結果
cat
Cat
“`## 命名規則
命名規則は以下の3つに分けられる。
1. スネーク
1. ラクダ
1. ケパブ### スネークケース
へびみたいなもの。
複数の言葉をアンダーバーでつなぐ。
– hello_world
– HELLO_WORLD### キャメルケース
ラクダみたいなもの。大文字のところがラクダのこぶ。
– helloPython
– HelloPython### ケパブケース
櫛が刺さったケパブみた
python の標準出力を tee で 表示/保存 できなかった件
開発中に大量のエラーを吐き出していたので
エラー表示を見ながらファイルにも保存したかったのに、`tee` を仲介させた途端何も出力しなくなった標準出力がバッファリングされるのが原因らしい
“`
python3 hoge.py | tee log
“`を
“`
python3 -u hoge.py | tee log
“`と、`-u` オプション追加で、解決した。
lxml.etree で XML の基本的なことをもう少し触ってみる(etree.XML)
# 目的
[Windows 10 + Excel2016_x86 VBA で XML の基本的なことを少し触ってみる](https://qiita.com/tabizou/items/10eb832352a6b31888c7)
で使用したXMLファイルをPythonで基本的な操作をもう少し試してみる。## Pythonのサンプルコード
基本的な機能をもう少し試してみる。“`python
# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8from lxml import etree
import urllib.request# urlencode
urladr = urllib.parse.urlencode({‘addr’:’池尻4-35-25′})
url = “http://geocode.csis.u-tokyo.ac.jp/cgi-bin/simple_geocode.cgi?charset=UTF8&” + urladrwith urllib.request
pythonなのか、python3なのか。
## トラブル
python3系をネットからインストールしたはずにも関わらず、ターミナルでバージョンを確認すると「Python 2.7.16」と表示される。(「Python 3.10.5」と表示されて欲しい)“`console
$ python –version
Python 2.7.16
“`## 原因
バージョン確認のコマンドが間違っていた。
コンピューターによってはpython2系とpython3系の両方がインストールされていることがあり、その場合はコマンドを以下のように使い分ける必要があるらしい。
python2系:python
pythom3系:python3自分のコンピューターにはpython2系がデフォルトでインストールされていたため、pythonコマンドを打つと「Python 2.7.16」と出力されるということだった。
python3系のバージョンを確認したければpython3コマンドを打つと「Python 3.10.5」と出力される。“`console
$ python –version
Python 2.7.16
$ python
【Python】SQLAlchemyでMySQLに接続する
今回は、Pythonで簡単にSQLを実行できる`SQLAlchemy`という`O/Rマッパー`を使用し、実際にMySQLとマッピングしてCSVファイルのデータを追加したり、CRUD操作をする方法について実装を行ったので、備忘録として残しておこうと思います。
# 前提
– SQLAlchemyがインストールされていること
– mysql-connector-pythonがインストールされていること上記モジュールがインストールされていない場合は、pipにてインストールを実行してください。
“`terminal
% pip install SQLAlchemy
% pip install mysql-connector-python
“`# DBと接続しCSVファイルのデータを追加する
まずは、DBとの接続情報を環境変数として定義します。## 環境変数の定義
私の場合、`.env`に必要な情報を環境変数として定義し、config.pyで読み込みと定義を行なっています。ここに`PORT`が必要となる方は、PORTも定義してください。
“`python:config.
機械学習〜ロジスティック回帰 数学
##数学で躓く
ロジック回帰分析の全て
>https://www.youtube.com/watch?v=mMMzDFttZ8A
>https://qiita.com/matsukura04583/items/0fb73183e4a7a6f06aa5###疑問1;商の微分公式とは?
商の微分係数の役割;分数の形の数字を簡単に素早く微分。
>https://mathtrain.jp/syonobibun###疑問2;シグモイド関数について
シグモイド関数の役割はシグモイド関数特有の性質よりデータの概形作成。
不連続だがよく使う関数をなめらかな関数で近似する役割。
*e=ネイピア数
>https://atarimae.biz/archives/10256#i-2複利で考えた際に元利に+複利としていき極限値まで求めたもの。
#####シグモイド関数は確率を計算する上で便利。
グラフより上限1で加減が0となっていてX=0の時Y=1/2になる。
軸となるのはこのX=0の時点の値1/2。
これは50%を表していて50%を基準としてプラスに進めば進むほど確率は上がり、マイナスに進めば
超初心者がe869120さんの【分野別 初中級者が解くべき過去問精選 100 問】をpythonで解いてみた!Part2
https://qiita.com/K-suke99/items/5576cbc476cf11422ef0
の続きです。
ALDS_11_C – 幅優先探索
https://onlinejudge.u-aizu.ac.jp/problems/ALDS1_11_C
“`python:practice.py
from collections import dequen = int(input())
connected = [[] for _ in range(n+1)]
for _ in range(n):
u,k,*V = map(int,input().split())
connected[u] = V
visited = [-1]*(n+1)
q = deque()
q.append(1)
visited[1] = 0
while q:
now = q.popleft()
for to in connected[now]:
if visited[to] != -1:
continu
kerasでデータの拡張をする
どうもエンジニアのirohasです。
先日、[kerasを使用して虹ヶ咲学園のキャラクターを画像認識させてみた](https://qiita.com/irohas_gawr/items/c13a59e59d1cde18e5be)の記事において、データ数の少なさから精度があまり芳しくなく、データを増やそうと思い、Data Augmentation(データ拡張)をしたので、
今回は機械学習ライブラリの一つであるkerasを用いた、Data Augmentation(データ拡張)を紹介します。# 目次
[1.環境](#1-環境)
[2.使用ライブラリ](#2-使用ライブラリ)
[3.データ拡張って何?](#3-データ拡張って何?)
[4.ソースコード](#4-ソースコード)
[5.まとめ](#5-まとめ)# 1. 環境
vscode
Python 3.9.0# 2. 使用ライブラリ
##### ・標準ライブラリ
os : ローカルフォルダ用ライブラリ
glob : フォルダ一括取得用ライブラリ##### ・外部ライブラリ
numpy 1.21.4 : 数値計算ライブラリ
【Python】TwitterAPIとtweepyでいいねの自動化をしてみた
今回は、検索したツイートに対していいねする処理を自動化するという実装を行いました。
勉強になりつつ楽しめると思うので、参考にしていただけますと幸いです。# 実装準備
まず、「いいね自動化」を実装するにあたり、前提として、`TwitterAPI`で「プロジェクト」登録を行い、`API_KEY`や`ACCESS_TOKEN`を取得している必要があるので、取得できていない方は、APIの設定から始めてください。> [Twitter Developers](https://developer.twitter.com/en/portal/projects-and-apps)
# 実装
以下が実装した内容です。
順次、解説します。
“`python:auto_fav_tweet.py
import tweepyimport config
api_key = config.TWEETER_API_KEY
api_secret_key = config.TWEETER_API_SECRET_KEY
access_token = config.TWEETER_ACCESS_TOKEN
a