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

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

ゼロから始める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カメラを使って、画像処理でやってみることにしました。

##完成形
完成したライントレースカーが動作しているところです。

特定のディレクトリ内のファイルを一括でアーカイブ化するスクリプト

#はじめに
前回更新からだいぶ間が空きました。
子供が増えて我が家の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 sqlite3

import click
from flask import current_app, g
from flask.cli import with_appcontext

def 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 Fraction

f =

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事