- 1. ゼロから始めるLeetCode Day17「169. Majority Element」
- 2. SQLAlchemyを簡単にまとめてみた(TIPSもあるよ)
- 3. [現代数理統計学の基礎 with python] 2章:確率分布と期待値
- 4. 画像処理によるライントレースカー製作記
- 5. 【Python】pickle モジュールを使用すると、オブジェクトをファイルに保存することができる
- 6. 特定のディレクトリ内のファイルを一括でアーカイブ化するスクリプト
- 7. Raspberry Pi 3B (Ubuntu16.04) にopenCV3.x をいれよう
- 8. Pythonでforループによる要素変更
- 9. Pythonから呼び出すMeCabのデフォルト辞書を変更する
- 10. 算数教具「ジャマイカ」を再現しよう❗️ vol.02 「Pythonで関数を作るための備忘録」
- 11. PythonでGoogleドライブを操作するパッケージPyDrive2の認証まわり
- 12. 【Python】初中級者が解くべき過去問精選 100 問を解いてみた【Part6/22】
- 13. Flaskのデータベースの設定
- 14. ゼロから始めるLeetCode Day16 「344. Reverse String」
- 15. ゼロから始めるLeetCode Day15 「283. Move Zeroes」
- 16. 動的計画法の勉強①
- 17. その数は整数と等価か?
- 18. AtCoder備忘録(Python3)
- 19. ゼロから始めるLeetCode Day14 「136. Single Number」
- 20. python+cartopy0.18.0で地図を描画してみる
ゼロから始めるLeetCode Day17「169. Majority Element」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetCode Day16 「344. Reverse String」](https://qiita.com/KueharX/items/27554500d3c7b2347b4c)基本的にeasyのacceptanceが高い順から解いていこうかと思います。
SQLAlchemyを簡単にまとめてみた(TIPSもあるよ)
# 目標
python の SQL ツールキットである SQLAlchemy のまとめ
質問や指摘・編集リクエストは大歓迎です。よろしくお願いします。## SQLAlchemy とは??
– [SQLAlchemy – The Database Toolkit for Python](https://www.sqlalchemy.org/)
Python で DB を操作するときに使用する ORM(Object Relational Mapper)ツール
## 環境準備
### Docker で環境を構築
手軽に Docker で構築する
“`yml:docker-compose.yml
version: “3”services:
db:
image: postgres:11.7
container_name: sqlalchemy-db
ports:
– 5432:5432
environment:
– POSTGRES_USER=postgres
– POSTGRES_PASSWORD=
[現代数理統計学の基礎 with python] 2章:確率分布と期待値
# はじめに
このシリーズは久保川達也氏著「現代数理統計学の基礎」を簡潔に説明し、その内容をpythonで実装してみよう、というものです。実装にはGoogle Colaboratory(以下:Colab)を使いました。ご指摘があればコメント欄に書いて下さるとありがたいです。
説明が必要だと思ったところにだけ触れて、アウトプットできればいいよねくらいのスタンスで書くので本の内容をちゃんと全部理解したい方にとっては向いていないかもしれないです。
式番号や命題・定義のインデックスは本に合わせて書いた場合、この記事では番号がとびとびになることがありますので予めご了承ください。# 2章の概観
まず、普段何気なく使っている確率変数を厳密に表現し、離散型・連続型における確率分布の説明をしています。似た言葉が出てきてややこしいかもしれませんが、内容を理解したら迷うことは少ないと思います。続いて期待値を定義して分散、標準偏差などの説明をしています。確率生成関数、積率生成関数、特性関数は初めてきくという方もいるかもしれませんが、統計学に関する造詣をより深められる重要な関数です。最後の変数変換は
画像処理によるライントレースカー製作記
ラズベリーパイとWEBカメラを組み合わせて、ライントレースカーを製作しました。
ベース車両の製作記はこちらです。[ハード編](https://qiita.com/shi78ge/items/e4d9dd90dc8274431e45)、[ソフト編](https://qiita.com/shi78ge/items/882d77ee6f78d63c0b0c)##経緯
ライントレースカーと言えば、照度センサーなどを使うのが一般的な方法と思います。
自分も最初はそれを考えていたのですが、部品調達やハードをいじるのが面倒だったので、既存のハードが使えないかと考え、昔買ったWEBカメラを使って、画像処理でやってみることにしました。##完成形
完成したライントレースカーが動作しているところです。pic.twitter.com/4ILHlJPWz2 【Python】pickle モジュールを使用すると、オブジェクトをファイルに保存することができる
# pickle モジュールを使用すると、オブジェクトを保存することができる
Python にて、辞書型のデータをローカル上に保存する処理を作成する際に、
「あれ?どうやって保存するんだ?」と疑問に思い、調べた結果、
`pickle`モジュールの存在を初めて知ったので、学習ノートとして残しておきます。(最終的に JSON に保存しました)## 要約
– pickle モジュールを使用すると、オブジェクトを別ファイルにバイナリ形式として保存することができる。
– しかし、pickle モジュールはセキュリティ的観点より、使用はあまり推奨されていない。
– また、保存したファイルは Python 固有のものである。## pickle モジュールについて
pickle モジュールを利用するとオブジェクトをバイナリ形式でファイルに保存することができます。
> pickle モジュールは Python オブジェクトの直列化および直列化されたオブジェクトの復元のためのバイナリプロトコルを実装しています。
[Python公式ドキュメント:pickle](https://docs.pyt特定のディレクトリ内のファイルを一括でアーカイブ化するスクリプト
#はじめに
前回更新からだいぶ間が空きました。
子供が増えて我が家のHDDが子供の写真・動画でパンク寸前になったため、ZIPで固めてバックアップを取ることにしました。そのときに作ったスクリプトです。#環境
・Mac OS Mojave
・python3#引用
・[退屈なことはPythonにやらせよう](https://www.amazon.co.jp/%E9%80%80%E5%B1%88%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AFPython%E3%81%AB%E3%82%84%E3%82%89%E3%81%9B%E3%82%88%E3%81%86-%E2%80%95%E3%83%8E%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AB%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B%E8%87%AA%E5%8B%95%E5%8C%96%E5%87%A6%E7%90%86%E3%83%97%E3%83%AD%E3%82%B0%E3%8
Raspberry Pi 3B (Ubuntu16.04) にopenCV3.x をいれよう
#概要
以前Coral Edge TPU を使って、TensorFlowLiteを用いた機械学習のコードを実行させました。
この時は単純にTPUのテストとして遊んだだけだったので、ホストはそのへんに転がっていた Ubuntu16.04 のPCだったのですが、今回はラズベリーパイをホストにして推論させようと思い、まずはささっとライブラリの準備、、と思ったのですが、これに思った以上に時間を食われてしまったので、解決策を共有しておきます(ものすごくダサい方法なので、もっとエレガントな方法があるはず!!)時間がかかりすぎて何に詰まったか覚えてすらいないので、思い出せる範囲で雑に書いていきます。
私のようなLinux初心者の方は、最終手段として使ってください
#環境
ハードウェア: Raspberry Pi 3 Model B
OS : Ubuntu 16.04
python : python3.5.2 (3.6や3.7でもできると思います、未検証ですが)★入れることのできるopenCVのバージョン:
openCV3.3.x、またはそれより古いもの#openC
Pythonでforループによる要素変更
#はじめに
pythonでfor文を使って処理をする場合にちょっとはまったので注意点を書いておこうと思います。#環境
OS: Windows10、 python: 3.7.4#やりたいこと
配列に対してforループを回し、各要素に対してある処理を行いたい#注意点
配列aの各要素に1を足す、という処理を例とします。この時、ただfor x in aで値を取り出し、xに1を足しても元の配列aは変化しません。“`python
a=[1, 2, 3]for x in a:
x+=1
a
“`
“`:出力
[1, 2, 3]
“`pythonでは変数は参照渡しだからこれでいけるだろうと勘違いしていました。(というかこの考え方自体も誤りでした [pythonの参照について] (https://qiita.com/ponnhide/items/cda0f3f7ac88262eb31e))
元の配列を変えたいなら
“`python
a=[1, 2, 3]for i, x in enumerate(a):
a[i]+=1
a
“`
Pythonから呼び出すMeCabのデフォルト辞書を変更する
#はじめに
ターミナルなどで使うMeCabのデフォルト辞書は`mecabrc`を編集することで変えられますが、`mecab-python3`をインストールしてpythonプログラムからMeCabをつかうときのデフォルト辞書はそれだけでは変えられません。”-d”オプションで毎回指定するのも面倒です。
やり方を調べても日本語記事がぱっと見つからなかったので、最終的に自分の環境でうまくできた方法をメモとして残しておきます。#環境
* OS
* macOS Catalina 10.15.4
* MeCab
* mecab 0.996 (brewでインストール)
* mecab-ipadic-NEologd
* Python
* python3.8.0 (pyenvでインストール)
* mecab-python3 (pipでインストール)MeCabなどのインストールは下記サイトの手順にほぼ倣いました。
https://qiita.com/taroc/items/b9afd914432da08dafc8
#やったこと`MECABRC`という環境変
算数教具「ジャマイカ」を再現しよう❗️ vol.02 「Pythonで関数を作るための備忘録」
# はじめに
このシリーズは、とある**算数教具「ジャマイカ」**について、
以下の目的を達成するべく奮闘する記録です。**1.** ***「ジャマイカ」のゲームを画像表示などを用いたプログラムで動かせるようになる。***
**2.** ***「ジャマイカ」におけるサイコロの任意の組み合わせについて、解の存在とその内容を探索・提示するプログラムを作る。***# 前回のおさらい
前回は、以下の内容を扱いました。
***§1. 「ジャマイカ」を再現する***
***Task.001 「サイコロの出目」を画像で表示する***
***Task.002 「ランダムな数字に合わせてサイコロ出目画像を表示する」***これにより、サイコロをランダムに振り、
出目に対応するサイコロの出目画像を並べて表示できるようになりました。**_____【 参考記事 】_____**
[^ref001] Recollection|[算数教具「ジャマイカ」を再現しよう❗️の前回記事
PythonでGoogleドライブを操作するパッケージPyDrive2の認証まわり
## はじめに
この記事では、PythonでGoogleドライブを操作するパッケージの中から`PyDrive2`([GitHub](https://github.com/iterative/PyDrive2))を取り上げます。
GoogleドライブはDrive APIを介して操作できますが、`PyDrive2`におけるDrive APIの認証部分について備忘録としてまとめます。
具体的には以下を扱います。– 認証情報(OAuth 2.0 クライアント ID)をGCPコンソールで作る方法
– PyDrive2で認証する方法
– 認証情報をローカル端末に保存し、都度ブラウザの認証画面が立ち上がらないようにする方法## PyDrive2について
PythonでGoogleドライブを操作するパッケージとして`PyDrive`([GitHub](https://github.com/gsuitedevs/PyDrive))は多少知られているかもしれません。
残念ながら、PyDriveは1年以上前から更新が止まっています。PyDriveからPyDrive2がフォークされたのが最近(
【Python】初中級者が解くべき過去問精選 100 問を解いてみた【Part6/22】
**目指せ水色コーダー!!!!!!**
ということで、
[レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【中級編:目指せ水色コーダー!】](
https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7%B4%9A%E8%80%85%E3%81%8C%E8%A7%A3%E3%81%8F%E3%81%B9%E3%81%8D%E9%81%8E%E5%8E%BB%E5%95%8F%E7%B2%BE%E9%81%B8-100-%E5%95%8F)(@e869120さん)
>
AtCoder で水色コーダー、つまりレーティング 1200 を少ない問題数で達成するために、茶色コーダー・緑コーダーにとって適切な教育的良問を 100 問集めました。こちらの記事の`初中級者が解くべき過去問精選 100 問`
を**Python**で解いていきます!
@e869120さんに感謝!!!!!!###過去記事リンク
**全探索:全列挙
Flaskのデータベースの設定
# はじめに
ここでは、Flaskのデータベース関連の設定の基本について解説します。
データベースは、SQLiteを利用するものとします。# スキーマの設定
テーブルの定義は以下のようにします。
“`sql:schema.sql
DROP TABLE IF EXISTS user;CREATE TABLE user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE NOT NULL,
password TEXT NOT NULL
);
“`# データベース用の関数
データベース関連の関数は以下のようになります。
“`python:db.py
import sqlite3import click
from flask import current_app, g
from flask.cli import with_appcontextdef get_db():
if ‘db’ not in g:
g.db = sqlite3.
ゼロから始めるLeetCode Day16 「344. Reverse String」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetCode Day15 「283. Move Zeroes」](https://qiita.com/KueharX/items/edf03e6ac08feeac3198)基本的にeasyのacceptanceが高い順から解いていこうかと思います。
#
ゼロから始めるLeetCode Day15 「283. Move Zeroes」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetCode Day14 「136. Single Number」](https://qiita.com/KueharX/items/fd12c8b8938798afcc8a)基本的にeasyのacceptanceが高い順から解いていこうかと思います。
動的計画法の勉強①
動的計画法というアルゴリズム(?)を勉強しました。![3F2E6842-BA7D-42BB-AFD2-7E162E5BCA6E.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632018/a57bf35f-7043-8b92-e75a-816ef6aecfa4.jpeg)
まずは、簡単な方→![ADA10812-D03C-4049-9B32-BF00B2EC3AB3.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632018/cd479474-568d-2582-65c5-474df8491fca.jpeg)
![48EEE6C8-EE6A-46DD-94F8-2417FE85F8F4.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/632018/5b53dff2-e235-fb05-71da-140f1506dacc.jpeg)
その数は整数と等価か?
# はじめに
1.23や34.5などの数値は小数ですよね。整数ではありません。
1.0や34.0も小数ですが、まあ整数ともいえるのかもしれません。1/3などの分数も、整数ではありません。
3/3の分数は、整数ともいえそうです。ここでは整数をこのように定義します。
“1や34などの他、1.0や3.0のように小数点以下が0である数と、分子・分母が共に同じ数である分数”この記事では、分数や小数でありながら整数でもあるリテラルを判別する方法について考察していきます。
# そもそも、分数の表現方法とは
純粋な整数や小数は以下のように、変数に数値を入力するだけで済みます。
“`Python
a = 123
b = 123.4
print(a)
print(b)# 123
# 123.4
“`一方で分数はというと、上記と同様に”1/4″などと記述すると計算処理が自動的に行われてしまうため、表現できません。
そこでPythonの標準ライブラリ fractionsを利用します。“`Python
from fractions import Fractionf =
AtCoder備忘録(Python3)
AtCoder Beginners Selectionに取り組んだ時の備忘録
↓各桁の和を求める
参考:https://www.suzu6.net/posts/30/“`python
def digitSum(n):
# 数値を文字列に変換
s = str(n)
# 1文字ずつ数値化し配列にする。
array = list(map(int, s))
# 合計値を返す
return sum(array)
“`↓スペース区切りで複数回入力しリスト(l)に格納する
“`Python
l = list(map(int, input().split()))
“`↓スペース区切りで複数回整数を入力し各変数に格納する
“`python
n, a, b=(int(x) for x in input().split())
“`↓リスト(l)の各要素を2で割る
“`Python
l = list(map(lambda x: x / 2, l))
“`↓リスト(l)を降順に並び替える
“`python
l_so
ゼロから始めるLeetCode Day14 「136. Single Number」
#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。その対策としてLeetCodeなるサイトで対策を行うようだ。
早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。
せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。
[Leetcode](https://leetcode.com/)
[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)
前回
[ゼロから始めるLeetCode Day13 「338. Counting Bits」](https://qiita.com/KueharX/items/98dcdb1b82d39c464a92)基本的にeasyのacceptanceが高い順から解いていこうかと思います。
python+cartopy0.18.0で地図を描画してみる
cartopy0.18.0以前で地図を描く際、軸ラベルが正距円筒図法とUTM図法にしか対応していない、軸ラベルのフォーマットが怪しいなどの難がありました。以前軸ラベルの調整について[この記事](https://qiita.com/earth06/items/f5958a89a546dce00c36 )を書きましたが、この度cartopyの軸周りの調整機能がかなり強化されたため、非常に簡潔に軸ラベルを表記できるようになりました。
本記事ではcartopyの最新機能を使って、軸ラベルを調整した地図をプロットしていきます。
# 使用環境
python=3.7
numpy=1.18.1
cartopy=0.18.0
matplotlib=3.2.1
jupyterlab=2.1.1
Anacondaで仮想環境を立ち上げて実行しています。(余談ですが、いままでJupyterNotebookを使用していましたが、Jupyterlabの有用性に今更気づいたので引っ越ししました。)
# ライブラリのimport
“`python
#In[1]
import cartopy.crs