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

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

【Python】日本地図の市区町村をMatplotlibのbasemapを使って表示する

# 都道府県はBIツールでどうにかなるが、市区町村の地図は自分で作成しなきゃいけいない
BIツールで調べていくと、tableauでは一応できるが、ツールがないとどうしようもない事象が発生した。
調べていくと、どうもPythonでも同じようなことができるようなので、その導入方法を紹介する。

# 参考
↓のURLに参考にした記事を張っておくので、元ソースが見たいときはこちらをご覧ください。
– https://qiita.com/ty21ky/items/271274a7057d32061cb3

# 実行環境
– OS : Windows 10 Home
– Python : Ver 3.7
– Install Tool: Anaconda

# 最初にやること
BasemapはCondaでインストールできるので、そこからインストールする。
※もちろん、インターネットに接続できる状態で行う
“`conda install -c anaconda basemap“`
 
# 必要なデータを準備する
国土数値情報ダウンロードページから該当する都道府県を探し、登録された時期のデータをダウ

元記事を表示

[LINE Bot] LIFFとリッチメニューでも管理画面が作りたい! 2 -リッチメニュー切替-

この記事はこの記事の続きです
[[LINE Bot] LIFFとリッチメニューでも管理画面が作りたい! 1 -グループ管理-]()

# リッチメニューを作る
さて、前回はグループへの招待・退会で管理メンバーの追加・削除をできるようにしました。
その際にリッチメニューをユーザ用と管理者用に切り替えます。
今回はそのリッチメニューを作ります。

今回はユーザー用を 3 x 1 (1200 x 405)
管理者用を 3 x 2 (1200 x 810) のメニューを作ります。
動作確認のため、上の段はユーザと同じものにします

## Line Messaging APIでリッチメニューを作る
Line Account Managerで作成したリッチメニューは残念ながらAPIでは使えません。
画像を準備し、APIで作成する必要があります。
画像はpngかjpgで1MB以内です。

pythonで適当に書いたので、ライブラリをインストールします。

“`bash
pip install line-bot-sdk
pip install pyyaml
pip install boto3

元記事を表示

倒立振子ロボット製作記~ソフトウェア編~

ハードウェア編は[こちら](https://qiita.com/shi78ge/items/74fb7aaeca70017761c7)

まずは動作させているところの動画です。

元記事を表示

DjangoRestFrameworkのTips

# バージョン情報
| module | version |
|:———————–|——————:|
| Python | 3.7.7 |
| django-environ | 0.4.5 |
| Django | 2.2.11 |
| djangorestframework | 3.11.0 |
| djangorestframework-jwt| 1.11.0 |
| django-rest-swagger | 2.2.0 |
| django-filter | 2.2.0 |
| mysqlclient | 1.4.6 |

# Swaggerを使用したい
##

元記事を表示

pythonで音に合わせて動く波形(オーディオスペクトラム)を作ってみる

#はじめに

現状macにはオーディオスペクトラム(よくある音に合わせてぬるぬる動く周波数領域の波形)を使えるフリーソフトがないようです。そこで、pythonを使って自作して遊んでみます。

(windowsの方はAviUtlというフリーソフトで出来るようです。)

##状況と目的

手元には、音声波形を作りたい**wav形式の**ファイルがあります。(僕の場合はGarageBandで打ち込んだ曲の出力ファイルです。)これを動画形式にしたいのですが、静止画に音声だけ流れるような動画では少々味気ないです。

そこで、作った曲に合わせて動く**オーディオスペクトラム**を作って、多少なりとも動画映えするようにするのが今回の目的です。

こんな感じのものが作れます↓

[![【ポケモン剣盾】戦闘!ビート【8bit音源アレンジ】](http://img.youtube.com/vi/JPE54SlF6H0/0.jpg)](http://www.youtube.com/watch?v=JPE54SlF6H0)

元記事を表示

製薬企業研究者がRDKitについてまとめてみた

# はじめに

ここでは、ケモインフォマティクスに不可欠なRDKitについて解説します。
Pythonを用いた基本的な方法についてまとめていきます。

# インストールとインポート

RDKitを利用するには、Anacondaをインストールして、`conda`でインストールするのが良いでしょう。

“`bash
$ conda install -c rdkit rdkit
“`

利用するときは、以下のようにインポートします。

“`python
from rdkit import Chem
“`

# 分子の読み込みと書き込み

例えば、SMILESで示された化合物の構造をpngファイルとして保存するには、以下のようにします。

“`python
from rdkit import Chem

molecule = Chem.MolFromSmiles(化合物のSMILES)
Chem.Draw.MolToFile(molecule, ‘ファイル名.png’)
“`

また、molファイルから作成することもできます。

“`python
from rdkit im

元記事を表示

Minecraftをpythonで制御して自動で階段を作った話

MinecraftをPythonで制御できるみたいなので、簡単なことからやってみた。
#コード
“`Python:Stairs.py
import mcpi.minecraft as minecraft
import math
import time

mc = minecraft.Minecraft()

while True:
x,y,z = mc.player.getPos()
distance = 1
rad = math.radians(mc.player.getRotation())
x1 = 0-math.sin(rad)*distance
z1 = math.cos(rad)*distance

if 0.0006462497831514223 > rad and -0.78485008484511 < rad: b=2 mc.setBlock(x+x1,y,z+z1,53,b) time.sleep(0.001) if 0.7852897061620548

元記事を表示

ゼロから始めるLeetCode Day62「83. Remove Duplicates from Sorted List」

# 概要

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

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

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

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

Python3で解いています。

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

前回
[ゼロから始めるLeetC

元記事を表示

(競プロ用) Python の bisect の目的別チートシート

# はじめに
Pythonでの竸プロには必須の二分探索モジュール`bisect`ですが、
所望の値を得るためにどう使えばいいか、(私は)たまに混乱してしまいます。
そこで、目的別の`bisect`の使い方をまとめてみましたので、備忘録を兼ねて投稿します。

# チートシート的なもの

“`python
# binary search
from bisect import bisect_left, bisect_right

al = [-9,-7,-4,0,3, 3,6,6,7,10] # 昇順sort済
N = len(al) # 10
b = 6 # 探索する値

# ——– 個数 ———
## b以下の要素の個数
cnt = bisect_right(al, b) # -> 8

## b未満の要素の個数
cnt = bisect_left(al, b) # -> 6

## b以上の要素の個数
cnt = N – bisect_left(al, b) # -> 4

## bより大きい要素の個数
cnt = N – bisect_right(al, b)

元記事を表示

OpenCVの動画コーデック

### はじめに
なめらかな動画をとるためには、フレームレートを上げる必要があります。
動画圧縮のコーデックによっては、フレームレートが上がらないことがあります。
そこで、OpenCVでのコーデック情報の取得と、コーデックの変更方法についてメモとして記載します。

参考:
[OpenCVのカメラ読み込みを高速化し、遅延時間も短くする](https://qiita.com/iwatake2222/items/b8c442a9ec0406883950
)
[OpenCVからWebカメラの「解像度」「FPS」及び、「フォーマット(コーディック)」を設定する方法](https://dev.classmethod.jp/articles/opencv-webcam-setting/)

### 動作環境
Win10 Pro 64 bit
Python 3.7
Anaconda
OpenCV 4.2 (conda-forgeでインストール)

### 動画コーデック

動画を保存する際に、データ量が非常に大きいためにデータの圧縮を行います。この圧縮アルゴリズムがコーデックです。圧縮アルゴリ

元記事を表示

forで配列・辞書要素の取り出し

for文で配列・辞書要素を取り出すときのメモとして記載します。
参考:
[Pythonのfor文によるループ処理(range, enumerate, zipなど)](https://note.nkmk.me/python-for-usage/)

“`python
x=[7,4,1]
y=[8,5,2]
d={‘a’:9,’b’:6,’c’:3}

# 基本
for i in x:
print(i)
#>>> 7
#>>> 4
#>>> 1
“`
####Dict(辞書型Key-Value)
“`python
# Dict(辞書型)
for k,v in d.items():
print(k,v)
#>>> a 9
#>>> b 6
#>>> c 3

#受ける変数を1つにするとTupleになる
for k in d.items():
print(k)
#>>> (‘a’, 9)
#>>> (‘b’, 6)
#>>> (‘c’, 3)

#キーだけ取り出す
for k in d.keys():
print(k)
#>>> a
#>>> b

元記事を表示

ゼロから始めるLeetCode Day61「7. Reverse Integer」

# 概要

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

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

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

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

Python3で解いています。

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

前回
[ゼロから始めるLeetC

元記事を表示

[PyTorch]ToTensor()はどのように動いているんだろう

## はじめに
PyTorchで画像を扱っている際,tochvisionのTransformsにあるToTensor関数(1)って何をしているのかが気になったので調べてまとめておこうと思います.

## 要約
ToTensor関数の動きを理解しnumpyと相互変換できるようになる

## sample code
[ここ](https://discuss.pytorch.org/t/understanding-transform-normalize/21730/9?u=kazuki_hamaguchi)(2)のコードを参考にしながら,numpyで画像を読み込んだと仮定して“`numpy -> tensor -> numpy“`に戻してみます.ダミー画像の大きさは$(W,H,C)=(4,5,1)$とします.また,動作確認のみなのため,“`ToTensor()“`と同じ機能を持つ“`import torchvision.transforms.functional.to_tensor()“`を使用しています.

“`python
import torchvision.transf

元記事を表示

PythonのメソッドでNoneType is not callable.

バカな私はこんなクラスを書いて

“`Python
class SessionManager:
def __init__(self):
self.continuous = 0
self.stay_min = None
self.datetime = None

def stay_min(self, df: Series) -> float:
“””
Args:
df (Series): row including (user_id,
datetime,continuos,session_id)

Returns:

“””
is_continuous: bool =\
df.continuous – self.continuous == -1
if is_continuous:
dst = (self.dat

元記事を表示

初めてWindows10にOpenCVを導入するときのアレコレと自己紹介のようなもの

#はじめまして
長いことQiitaは読者としてお世話になってきましたが,一本目の記事なのでいろいろと手探りです.
コードについてでも記事の作りこみ方でも,なんでも気軽にコメントをください.アレコレの部分はあくまでも私見なのでご容赦くださいませ.
#自己紹介的な
こんにちは,ぶらんちと申します.
大阪のとあるメーカー勤務でソフト部門の新人です.大学ではロボット工学について学んでいたはずなのですが,気づいたら情報理工学的なところに興味を持つようになり,ソフト開発者の道を歩み始めました.
今の興味が自動化ということもあり,Excel for VBAやらPythonやらLuaやらバッチファイルやら手広く扱うようになってきました.
少し余裕ができたらSeleniumにも手を出そうと思っています.
#記事作成を通してやりたいこと
例えばWebカメラでスナップショットを撮影,という記事は世の中にたくさんありますが,その中の多くが[特定のキーボード操作をしたら撮影]とか[10秒待ったら撮影]とかそういうのが多かったのではないでしょうか.
私は自動化が大好きなので,「キーボードで何か押さないといけない」

元記事を表示

Pythonで2分探索木の動作を可視化

#探索木の動作
平衡2分探索木の考えですが、以下の関係を壊さないように、気に対してノードの`追加`と`削除`進めていきます。
`左の子ノードの値 ≦ ノードの値 ≦ 右の子ノードの値`
加えて、木の平衡状態、つまり
**各ノードの左右の部分木の高さの差が1以下にする**
という状態を保つために
ノードの`追加`や`削除`が行われた後に`回転`が行われます。

このロジックの理解を深めるため、どのように木が変化していくかを可視化してみます。
こんな感じです。
スクリーンショット 2020-06-18 23.44.00.jpg
スクリーンショット 2020-06-18 23.49.34.jpgゼロから始めるLeetCode Day60「1481. Least Number of Unique Integers after K Removals」

# 概要

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

どうやら多くのエンジニアはその対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイトであり、海外のテックカンパニーでのキャリアを積みたい方にとっては避けては通れない道である。

と、仰々しく書いてみましたが、私は今のところそういった面接を受ける予定はありません。

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

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

Python3で解いています。

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

前回
[ゼロから始めるLeetC

元記事を表示

JavaScript版strftime(組み込みオブジェクトDateの拡張)

#strftimeって?
PythonやCなどにある、日付オブジェクトのフォーマット関数。あらかじめ決められたキーワードを入力することで、該当箇所が日付のパラメータに置換される。

“`python:Python
import datetime

d = datetime.datetime.now()
d.strftime(‘%Y-%m-%d’)
# “2020-06-18”
d.strftime(‘%c’)
# “Thu Jun 18 13:25:31 2020″
“`
#使い方

“`javascript:JavaScript
var d = new Date();
d.strftime(‘%Y-%m-%d’)
//”2020-06-18″
d.strftime(‘%c’)
//”Thu Jun 18 13:25:31 2020”
“`
###対応指定子
|指定子|意味|使用例|
|—–|—–|—–|
|`%a`|ロケールの曜日名を短縮形で表示します。|Sun, Mon, …, Sat|
|`%A`|ロケールの曜日名を表示します。|Sunday, Mo

元記事を表示

小説「吾輩は猫である」でベンフォードの法則が成り立っているかを確かめてみる

#1.はじめに
プログラミングを学習し始め自然言語処理に興味を持ったので,[自然言語処理100本ノック2020](https://nlp100.github.io/ja/)を勉強し始めた.[第4章:形態素解析](https://nlp100.github.io/ja/ch04.html)を参考にしながら夏目漱石の小説『吾輩は猫である』の文章中の数字を抽出してベンフォードの法則が成り立っているか調べることにした.
#2.目次
1.はじめに
2.目次
3.ベンフォードの法則
4.コード
5.まとめ
参考
#3.ベンフォードの法則
ベンフォードの法則とは住所,株価,電話料金など我々の身の回りにあるものの数字の最初の一桁目の分布についてなり立つ法則である.それらの数字は1〜9の数字のいずれかであり,その分布は一桁目の数字をn,その分布をpとすると
$$ p = \log_{10}\frac{n+1}{n} $$
となる.これを表にすると以下のようになる.

|n|1|2|3|4|5|6|7|8|9|
|:——–|:—|:—|:—|:—|:—|:—|:—|:

元記事を表示

Windows Master File Table($MFT) をElasticsearchにimportする

# Overview

[Windows EventLogをElasticSearchにimportする](https://qiita.com/sumeshi/items/491891d83c3aca224880)
[Windows EventLogをElasticSearchにimportする(のを100倍早くする)](https://qiita.com/sumeshi/items/cb2fbafe59c2c83e3085)
[Windows EventLogをjson形式に変換する](https://qiita.com/sumeshi/items/f3e87f0412f9b05f85a3)

このへんの記事のMFT版です :sushi:

DFIRをする際に, たまにMFT(Windowsのファイル管理テーブル)を調査する必要があるので自分用にライブラリ化しました.
内部でRust製ライブラリを使用しているのでなかなかに高速です.

僕のようにフォレンジック以外の用途として, ファイルを高速に検索するサービスを作ってる人もいるようです(凄い!).
Pythonで検索サービスなんか

元記事を表示

OTHERカテゴリの最新記事