Python関連のことを調べてみた2020年11月19日

Python関連のことを調べてみた2020年11月19日

法令における「等」の登場回数とそのパターンを検証してみた

noteで書いた記事がそれなりに好評だったので、こちらにも転載させていただきます。

Apple Silicon で psycopg2 (python3用pgsqlライブラリ) をインストール

Apple Silicon psycopg2 インストール作業メモ 2020/11/19

1, python3,pip3はos(Big Sur 11.1beta)バンドルのものを使う

$ which python3
/usr/bin/python3

$ python3 -V
Python 3.8.2

pip3は直接呼び出すとwarning出るので回避
alias pip3=’/usr/bin/python3 -m pip’

$ pip3 -V
pip 20.2.4 from /Users/myname/Library/Python/3.8/lib/python/site-packages/pip (python 3.8)

2, Postgresqlをインストール
$ cd ~
$ wget https://ftp.postgresql.org/pub/source/v12.5/postgresql-12.5.tar.bz2
$ tar xvfz <上のファイル>
$ cd pgsql
$ ./configure
$ make
$ sudo make install
$ vi

元記事を表示

【Python】REST APIの必須,便利ライブラリまとめ

#はじめに
PythonでREST APIを作成する際に必要,便利なフレームワークまたはライブラリに関する記事です。
この記事ではPythonのwebフレームワークのDjangoを使います。
Flaskは別で出そうかなと考えています。
またDjangoで各ライブラリ,フレームワークを使用するには、インストールをしてsettings.pyを編集する必要があります。
※settings.pyとはDjangoプロジェクト作成時に自動生成されるファイルでミドルウェアやライブラリなどの設定を行うものです。
なので今回は各ライブラリの紹介と環境構築方法をまとめました。
間違いなどありましたら容赦無くご指摘ください。

それでは見ていきましょう!!

#必要、便利なフレームワーク(ライブラリ)

##Django
Webフレームワーク。
Webアプリケーションに必要なありとあらゆるモジュールが用意されています。
例えばディレクトリのパスやデータベースを楽に扱うなどなど。
これがないと始まらない。
####インストール方法

“`terminal:terminal
$ pip install dja

元記事を表示

mnistの数字たちをkerasで教師なし学習で分類する【オートエンコーダ編】

## はじめに

教師なし学習は一般的に教師あり学習と比較すると精度が落ちますが、その代わりに様々なメリットがあります。具体的に教師なし学習が役に立つシーンとして

**- パターンがあまりわかっていないデータ
– 時間的に変動するデータ
– 十分にラベルがついていないデータ**

などが挙げられます。

教師なし学習ではデータそのものから、データの背後にある構造を学習します。これによってラベルのついていないデータをより多く活用できるので、新たなアプリケーションへの道が開けるかもしれません。

前回、PCAとt-SNEを用いて教師なし学習で分類しました。
https://qiita.com/nakanakana12/items/af08b9f605a48cad3e4e

でもやっぱ流行りのディープラーニング使いたいですよね、ってことで今回の記事では
**オートエンコーダを使った教師なし学習**
を行います。
オートエンコーダ自体の詳しい説明は省略します。参考文献をご参照ください。

## ライブラリのインポート
“` python:
import keras
import rando

元記事を表示

機械学習を用いてリアルタイムにギター のコードを分類してみた

#目的
趣味でギターを引いていて,ギター音をAIが正しく識別できるか気になった
今回は通常のNeural Networkと簡単なCNNを用いてリアルタイムに9種類のコードを分類してみる

#環境
Pythonを使用する.以下のライブラリをインストールする.
・Pyaudio
・Chainer
・keras
・sklearn
・pandas

#アジェンダ
1. 音波形の取得,フーリエ変換
2. Neural Network
3. CNN
4. 今後の課題

#1. 音波形の取得,フーリエ変換
リアルタイムで音声波形を取得し,フーリエ変換し正規化,結果をcsvファイルに書き込むプログラム
申し訳ないが,フーリエ変換に関しては専門外のためあまり詳しくない
プログラムも他の記事を参考にしたため勉強して使用した方が良いが,numpyで簡単にできるみたいですね
全てのコードの波形をcsvファイルに記録したら,ラベルをつけて1つのファイルに結合しておく
今回はC,D,G,A,Am,F,Fm,B,Bm, 無音状態 の10種類のスペクトルを分類する

“`python:data-kakikomi.p

元記事を表示

Python便利バッチ

# Python便利バッチ
 自分がいつも使っているPython関連のちょっとしたバッチをQiitaの投稿の練習として記載します。

## Pythonファイル名バッチ
 編集中のpythonファイルを実行するときに、コマンド操作が面倒でダブルクリックで実行したいときや、タスクスケジューラで起動させたいときに使っているバッチです。
 下記バッチを「実行したいpythonファイル名.bat」で保存すればダブルクリックでpythonを実行できます。

“`bat:PythonFile.bat
rem バッチの格納フォルダへ移動
cd %~p0

rem conda環境をアクティベート
call activate scraping_env

rem バッチファイルのファイル名.pyのpythonファイルを実行
python %~n0%.py

rem Pythonスクリプトが終了したら待機
pause
“`

pythonファイルの例

“`python:PythonFile.py
print(“バッチ名と同じpythonファイルが実行できるよ。”)
“`
うん、実行プログラムに

元記事を表示

Blender でキーフレームごとに出力解像度を設定する方法

![2020-11-19 00_11_40-StrokesPlus.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8267/549a12fa-cbf1-8fe3-fb08-b7244b61b3ba.jpeg)

漫画の下書きに、 Blender のレンダー画像を使うことになりました。「1コマ=1キーフレーム」と対応させ、キーフレームごとのレンダー画像を漫画作成ソフトに貼り付けて使う想定です。

通常、漫画のコマは、1コマごとに縦横比が異なります。しかし、Blender ではキーフレームごとに解像度を設定することができません。すべてのキーフレームで同じ解像度にするか、1フレームずつ手動で切り替えるしかありません。どちらも不便です。

そこで、キーフレームごとに解像度を設定する方法を考えました。 Blender にはキーフレームに **マーカー** という文字列を設定できるので、そこに解像度の縦横比を記録することにしました。

なお、一般的な横読み漫画ではコマの縦横のサイズは不定ですが、今回は縦読み漫画であ

元記事を表示

LeetCodeに毎日挑戦してみた 7.Reverse Integer (Python、Go)

## はじめに

無料英単語サイト[E-tan](https://your-e-tan.com/)を運営中の@ishishowです。

プログラマとしての能力を上げるために毎日leetcodeに取り組み、自分なりの解き方を挙げていきたいと思います。

#### Leetcodeとは

[leetcode.com](https://leetcode.com/)
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。

Go言語入門+アルゴリズム脳の強化のためにGolangとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)

####

#### 2日目(問題07)

#### Reverse Integer

– 問題内容(日本語訳)

> 32ビットの符号付き整数を指定すると、整数の逆桁になります。
>
> **注:**
> 我々は、32ビット符号付き整数の範囲内の整数を格納することができる環境を扱っていると仮定

元記事を表示

LeetCodeに毎日挑戦してみた 1.Two Sum(Python、Go)

## はじめに

無料英単語サイト[E-tan](https://your-e-tan.com/)を運営中の@ishishowです。

プログラマとしての能力を上げるために毎日leetcodeに取り組み、自分なりの解き方を挙げていきたいと思います。

#### Leetcodeとは

[leetcode.com](https://leetcode.com/)
ソフトウェア開発職のコーディング面接の練習といえばこれらしいです。
合計1500問以上のコーデイング問題が投稿されていて、実際の面接でも同じ問題が出されることは多いらしいとのことです。

Go言語入門+アルゴリズム脳の強化のためにGolangとPythonで解いていこうと思います。(Pythonは弱弱だが経験あり)

#### 1日目

#### Two Sum

– 問題内容(日本語訳)

> 整数の配列と整数が与えられた`nums` 場合`target`、*合計が`target`*。になる*ように2つの数値のインデックスを*返し*ます*。
>
> 各入力には***正確に\*1つの解**があると想定でき、*同じ*

元記事を表示

AtCoder:Python:サンプルテストをできるだけ自動化する。

AtCoderでコンテストの入力例をコピー→貼り付け→実行して合っているか確認していくのがめんどくさいのでできるだけ自動化したい。
でも自分でコーナーケースなどを作ってテストもしたいので自分で作成したケースも実行できるようにしたい。

windowsでpythonはインストールされていれば以下に記載の手順を行えばできるようになる。

>先にすべての手順を終えたあと、実際のコンテストでテストする際のやり方を説明する。
①サンプルダウンロードのプログラムを実行し、コンテスト名を入力(「abc123」など)
②入力例と出力例をダウンロード
③プログラムを書く
④実行して出力例と出力があっているか確認

>プログラムが行っていることの簡単な説明は以下。
①入力されたコンテスト名を受け取り
②pythonでコンテスト名からURLにアクセスしてhtmlから入力例と出力例を引っ張り出す。
③それぞれをtxtファイルに出力
④保存されたtxtファイルを引数としてプログラムを実行(windows batを使う)
⑤実行結果の出力と出力例を並べて表示

導入方法と使い方を以下に記載。

【手順1】

元記事を表示

MLflow on Databricksを試してみた

## 動作環境
* 今回 lightGBMを利用するので、記事作成時点(2020年11月)で最新RuntimeのDatabricks 7.4MLを利用しています

### 追加の外部ライブラリをインストールしたい場合
* クラスターの `Libraries` タブからインストールすることが可能です(7.4MLは既にlightGBMがインストール済み)
![libraries.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23102/7ceb99f9-d84d-f211-5832-b21564e2919d.png)

### MLflow Trackingでモデルの評価をする
* irisデータセットをlightGBMで学習させてみる。Databricksクラスターを起動後、Notebook上で以下のサンプルコードを実行してみます
* 以下では、自動トラッキングの有効化(`mlflow.lightgbm.autolog()`)をしているため、自動的にパラメータとメトリックがトラッキングされます。

`

元記事を表示

【チョコプラ】悪い顔選手権のコメント欄から被害届を抽出する

## はじめに
まずはこちらをご覧ください。
【企画】悪い顔選手権

## 動作環境
* Python 3.6.8
* YouTube Data API ※使用前に登録が必要。

## 実装内容
* コメント取得
* Youtube Data APIを使用してコメントとそれに対するリプライコメントを取得する。
* コメント以外の情報(コメントした人のID等)は取得しない。

* 被害届の判定条件
* 「長田①」「松尾2」のように、名前+数字(1~3)が入っている。
* 「~された」のように受動態になっている。
* ただし目撃情報も含みたいので「~いた」も含む。

## ソースコード

“`python:get_youtube_comments.py
import json
import re

import pandas as pd
import requests

API_KEY = ‘自分のAPIキーを入力する’
VIDEO_ID = ‘IEkLSfs

元記事を表示

2次元配列の動きを眺める関数を作った(Python)

# はじめに

主に競プロにて、2次元配列の変化を観察したいときがあると思います。
DPとか、DPとか。

1次元配列ならまだしも、2次元配列を逐次`print`するとかなり見にくい。
ということで、2次元配列の変化をじーっと眺めるための関数を用意しました。

完成品はこちら↓

“`python
from time import sleep
def print_2d_overwrite(list2d, val_width=5, sleep_sec=1.0, header=None, highlights=[]):
res_str = f'{header}\n’ if header is not None else ”
for i, row in enumerate(list2d):
for j, v in enumerate(row):
v_str = str(v).rjust(val_width)
if (i,j) in highlights:
v_str = f

元記事を表示

クラス内のProcessPoolExecutorにselfを渡してはいけない

# 環境

Python 3.7.4
Windows 10

# ProcessPoolExecutorが止まる
並列処理のためにProcessPoolExecutorを使用した際にエラーが発生しました。
以下がそのコードです。

“`python
import concurrent
import concurrent.futures

class Process:
def __init__(self):
self.process_list = []
self.executor = concurrent.futures.ProcessPoolExecutor(max_workers=4)
# self.executor = concurrent.futures.ThreadPoolExecutor(max_workers=4) # スレッド処理なら動く

def _process(self, n):
# 処理部
return 1

def start_pro

元記事を表示

Pandasの使い方2

#1 この記事は

DataFrame型データの各種操作方法をメモする。

#2 内容

###2-1 Multi Index型 DataFrameのデータについて特定のindexのみのデータを表示する。

“`python:sample.py
import pandas as pd
import numpy as np
idx = pd.IndexSlice

#dataを定義する。
dat = [
[100,’2019-07-01′,’9997′,’740′],
[100,’2019-07-02′,’9997′,’749′],
[100,’2019-07-03′,’9997′,’757′],
[200,’2019-07-01′,’9997′,’769′],
[200,’2019-07-02′,’9997′,’762′],
[200,’2019-07-03′,’9997′,’760′]
]

#datをDataFrame型変数dfに格納する。
df = pd.DataFrame(dat,columns=[“A”,”B”,”C

元記事を表示

Unfold関数について

#Conv2D演算
2次元畳み込みの演算を考えた場合、入力$(Batch,H,W,C_{in})$、出力$(Batch,H,W,C_{out})$、カーネルサイズ$(3,3)$、畳み込みの重み$W=(3,3,C_{in},C_{out})$とすれば、

実質的にConv2D演算は
$matmul(x,W)=matmul((Batch,HW,9C_{in}), (9C_{in}, C_{out}))=(Batch,HW,C_{out})$
というmatmulの行列演算を考えることに等しいです。
ここで$c=matmul(a,b)$という行列演算において$a=(i,j,k,m),b=(m,n)$ならば$c=(i,j,k,n)$です。

一方で入力$(Batch,H,W,C_{in})$に対して

“`math:
x[:,0]=input[:,0:H-2,0:W-2,:] \\
x[:,1]=input[:,0:H-2,1:W-1,:] \\
x[:,2]=input[:,0:H-2,2:W-0,:] \\
x[:,3]=input[:,1:H-1,0:W-2,:] \\
x[:,4]

元記事を表示

Djangoでフォロー機能を実装する

# 前段
SNS系アプリにほぼ必須のフォロー機能をDjangoで実装しました。
ライブラリ不使用の自前実装になります。
各自用途や要件に合わせてカスタマイズしてください。

## 開発環境
– Django
– Python 3.8.5
– MySQL
– Visual Studio Code

※SQLite3でもほぼコード変更なしで書けます。

#フォロー機能の具体的な要件
– フォローすることができる/解除もできる
– 自分自身をフォローすることはできない
– フォロー数、フォロワー数を確認できる

フォロワーの一覧表示などはここでは省きます。
必要最小限の機能要件を実装します。

#テーブル設計
テーブルを1つだけ作成して済ましてしまう方法もありますが、個人的にSQL文が冗長になったり、テーブル管理がしにくい印象を持ったので今回は2つ用意します。

**follow_relationテーブル**

| データ | 格納する情報 | データ型 |
|:-:|:-:|:-:|
|user_id |フォローする側のユーザーID | UUID |
|followed_id

元記事を表示

日英翻訳の作り方

日英翻訳の作り方

日英翻訳をtensorflowとkerasで実装していきます。

この記事の目次です。
1. [環境やデータセットの詳細](#env)
2. [基本的な流れ](#basic flow)
3. [データの前処理](#preprocess)
4. [モデル構築](#construct model)
5. [学習](#train)
6. [評価](#evaluate)

コードの詳細はgithubで公開していますので、参考にしてください。
Japanese-English_Translation
.pyinbで保存しているので、google colabで気軽に動かせるようになっています。
大昔に自然言語処理の勉強した際のコードを公開します。(少し整理したものを公開)

お役に立てれば、幸いです。

環境やデータセットの詳細

ハードウェアの環境
gooble colab

ソフ

元記事を表示

Python: Pythonista 3 on iPadでUIを使ってみる

## はじめに
最近出たばかりの、iPad Air 4 を買った。使用目的は主に手書きメモ作成なのだが、計算しながらメモを作成する場合も多い。手書きメモといってもテキストと数字だけなら、わざわざ手書きにしなくても、さっさとテキストエディタで打ち込めばいいのだが、説明図が必要となると、やはり手書きが便利である。計算が必要な場合には、これまでは iMac で Python を立ち上げて計算させながら iPad で手書きスケッチやメモを行っていたが、iPad があるのに iMac を立ち上げるのもなんかかっこ悪い、というかスマートでない。
そこで、最近はご無沙汰であったが、iPad mini 4 用に購入していた、Pythonista 3 を使ってみることにした。

Pythonista 3 は、numpy および matplotlib を含んでおり、これらはほぼ間違いなく動く。scipy や pandas など、その他のライブラリは使えないと思ったほうが良い。このため、複雑な計算でも numpy と matplotlib のみを使っているコードなら実用性がある。また GUI も使えるらしい

元記事を表示

OTHERカテゴリの最新記事