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

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

pythonでのMysqlの使い方

## はじめに
この記事はYoloで受け取ったデータをもとに可視化する為の方法として,Mysqlを利用する方法を記入していくつもりです.
Mysqlの使い方は以下の記事を参考に記事にしていきたいと思います.
>Python + mysql-connector-python の使い方まとめ
>https://qiita.com/valzer0/items/2f27ba98397fa7ff0d74

##環境
>python8.x
xamppを利用(Mysql)

## 使用しているライブラリ
>mysql.connector

## データベースの構成
databasename:mask
table:mask-ok-or-ng1
カラム:3

|name |format
|:———-|—–:|
|day | day |
|time | time |
|ok-or-ng | text |

## 実装したコード
“`
def sqlng():
day = datetime.date.today()
time1 =

元記事を表示

文章内の人名や地名を抜き出して列挙する

##問題意識

1. テキスト文の解析手法としての固有表現抽出は、良い意味で「枯れた」、信頼性の高い手法です。
2. テキスト文から意味を抽出する技術としては、文章の自動要約モデルがあり、深層学習を用いた要約文の自動生成モデルなども、膨大な件数の論文が日々、提案されています。
3. 文章の自動要約技術は素晴らしいものですが、生成された要約文からは、元の文に含まれていた、特定の「人物名」や「地名」が脱落してしまう事が多いと思います。
4. 興味を持ったテキスト文中に含まれる「人物名」の単語だけを、すべて漏らさず一覧出力することで、その文書が「誰」に言及していて、誰に言及していない文であるのかを、ひと目で確認することができます。
5. このように、要約文から漏れてしまう「情報」を、固有表現を抽出することで、すくいとることができるケースがあるのではないでしょうか。

__( 参考 )__
なお、文章の自動要約モデルには、*Extractrive summarization*と*Abstractive summarization*モデルの2つの流れがあります。

・ [@koreyouさんQ

元記事を表示

Djangoでログイン機能の実装

これは自分の備忘録です。
自学のために色々調べたのですが、バージョン2の解説等が多くややこしかったのである程度まとめておきます。
同じような悩みにぶつかった人のためになればと思って書いています。
暖かい目で見守って下さい!(何か修正点あればどしどしお願いします)

大体のことはチュートリアルやればわかる(適当)
https://docs.djangoproject.com/ja/3.1/intro/tutorial01/

<使用環境>
・OS…windows10
・Python…3.7.6
・Django…3.1.3

環境構築

ローカルにpythonをインストールしても良いですが、パッケージ管理等を考えるとanacondaを使用した方が良いかと。
ここら辺は調べたらたくさん出てくるのでスルー。

見落としがあれば申し訳ありません。
パッケージは恐らく

“`
pip install django
pip install pillow
“`

だけだったはず、、、!!

Let’s Start Project!!

ここら辺も同じ

元記事を表示

googleapiclientを使うプログラムでPyInstallerするとエラーがでた話

# 問題
Google Api(スプレッドシート)を使うプログラムをPyInstallerで実行ファイル化しようとしたら,コンパイルはできたが実行時にエラーが発生.
コンパイルしたプログラムは以下のようなもの

“`python:main.py
from googleapiclient.discovery import build
# 以下略
“`
ここで,

“`sh
pyinstaller –onefile main.py
./dist/main # コンパイルに成功し,実行ファイルができる
“`
さて,実行ファイルを実行すると,

“`
pkg_resources.DistributionNotFound: The ‘google-api-python-client’ distribution was not found and is required by the application
“`
:middle_finger_tone2::laughing::middle_finger_tone2:

# 解決方法
google-api-clientのバージョンを*

元記事を表示

総務省APIを使ってデータを取得する

# 総務省APIを使用してデータを取得

計量経済学のパネルデータを作成するためにPythonでデータをとってみました。(備忘録です)

## 準備
Python実行環境
総務省APIの取得
[こちら](https://www.e-stat.go.jp/api/api-info/api-guide)からユーザ登録して取得できます。

## コード

“`python:def_TakeData
import requests,urllib
import pandas as pd
import numpy as np
import json
def get_json(base_url,params):
params_str=urllib.parse.urlencode(params)
url=base_url+params_str
json=requests.get(url).json()
return json

def take_data(dataid):
appID=”appIDを入れます”
base_url=”http://ap

元記事を表示

Ubuntu 20.04でSSL接続エラー(ssl.SSLError: [SSL: DH_KEY_TOO_SMALL])が発生する際の対処法

Ubuntu 20.04でPythonのサードパーティAPIを用いてSSL通信しようとしたところ以下のエラーが発生。Ubuntu 20.04で起こるらしい。
>(Caused by SSLError(SSLError(1, ‘[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1123)’)

下記のQAを参考に解決した方法をまとめます。
https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-security-level

# openssl.cnfの編集
以下コマンドでopensslコンフィグファイルの配置ディレクトリを確認。
>% openssl version -d

ちなみに一般的には”/usr/lib/ssl”配下にある。

ファイル冒頭に以下の1行を追記して保存。
>openssl_conf = default_conf

次にファイル末尾に以下を追記する。
>[ default_conf ]
>
>ssl_conf = ssl_sec

元記事を表示

blender, python, らせん階段、色

改良点はわずかですが、色つけて回転軸を変えてカメラ注目点を変えました。
動画1秒はtwitterで[この動画](https://mobile.twitter.com/naohiko7/status/1328308708959404043)です。
![bph38color.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/d24b05b7-a66e-a811-0ec8-7136b163d565.png)

“`python3
# nh38 == 5階建ラセン。2020.11.14–2020.11.16
import bpy
import math
import random
# ========= DELETE ALL mesh, light, camera, みな削除する2行 =========
for item in bpy.data.objects:
bpy.data.objects.remove(item)
#================== building helix

元記事を表示

pythonとかをbatファイルから実行してみた

# batファイルでCとかpythonとかを実行する
この頃寒いですね。
## なんでそんな面倒なことを
え?なんで?そりゃぁ、ねぇ、、、夢ってやつ?
あ、多分詳しいやり方とかはご自分でググったほうがわかりやすいかと。
あくまでも自己満なので。
## やってみた
まずbatファイルから。
c言語の実行↓(オプションなどは随時書き換えるしかないです。~~とゆうか誰も使わないか~~)

“`vb
@echo off
gcc %1
a
“`
pythonの実行↓

“`vb
@echo off
python %1
“`
今回実行してみたコード(C言語&python)

“`vb
//test.c
#include

int main(){
printf(“OK!! this is c”);
return 0;
}
“`

“`vb
#test.py
print(“OK! this is python”)
“`

# 結果
できた!やったぜ。

“`vb
OK!! this is c
“`

“`vb
OK! this is pyth

元記事を表示

# ざっくりとした強化学習手法の分類

# はじめに
– 強化学習を学んだ際のメモとして,いろいろな手法を分類して紹介します。各手法の実装や詳細は,他の方の記事を参照してください。本記事は,[1]**森村哲郎『強化学習』講談社** を中心として記載しています。
– 末尾の参考文献をもとに,できるだけ簡素に記載するように心がけたので,厳密性に欠ける可能性があります。あくまで手法全体を俯瞰するフローチャート的な立ち位置としてご参考ください。
– 明らかな誤りがあった際にはご連絡ください。
– 記事の基本的な流れは文献[1]をかなり参考にしています。著作権等の問題が発覚した場合には記事を取り下げますので,ご了承ください。文献[1]は数理的に非常に厳密に記載されており,難しいですが一読どころか百読くらいの価値がありますので,ぜひご購入の検討を (ステマ)。

実装や簡単な説明は,「Pythonで学ぶ強化学習」のgithubがとてもわかりやすいです。
https://github.com/icoxfog417/baby-steps-of-rl-ja

章立ては以下の通り。
1. 環境が既知の場合
2. 環境が未知の場合1 – バッチ

元記事を表示

drf-flex-fieldsでネストしたserializerを実装する方法

ネストしたserializerを実装するところで躓いたので、メモとして書く。
#drf-flex-fieldsをインストール
“`
pip install drf-flex-fields
“`
#model
“`model.py
class User(models.Model):
username = models.CharField(max_length=255)

class Tag(models.Model):
name = models.CharField(max_length=255)

class Book(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
tag = models.ManyToManyField(Tag)
“`
#serializer
“`serializers.py
from rest_flex_fields import

元記事を表示

Pythonによる線形代数入門:A=LU分解

LU分解とは、正方行列 A を下三角行列 L と上三角行列 U の積、すなわち A = LU が成立するような L と Uに分解することをいう。連立方程式の解法、逆行列の計算、行列式の計算などに用いられる。解法には、解析解、ガウスの消去法、再帰法など多数ある。LとUのペアーは一意に定まりそうであるがそれは条件による。


11月19日 線形代数 オンライン勉強会
[初心者大歓迎 19回目 線形代数イントロダクション Gストラング](https://kinyuzaimu.connpass.com/event/194921/)

を行います。奮ってご参加ください。

# A=LU 消去と分解

3×3の行列$A$を消去により対角要素にピボットをもつ上三角行列$U$と下三角行列$L$に分解できることを確認する。

## 消去による対角要素にピボットをもつ上三角行列の取得

Uは対角要素にピボットをもつ上三角行列である。Lは下三角行列である。Aは消去の手順を通して上三角行列と下三角行列に分解することができる。

“`math
A=\left(
\begin{ar

元記事を表示

Pythonにおけるdestructorの挙動を確認

#サンプルコード *class_test.py*

“`Python3:class_test.py
class SampleClass:
num = 0
def __init__(self, number=1):
SampleClass.num +=1 # インスタンスが生成される度に、クラス変数numを1インクリメントする
self.num = number # インスタンス生成時に生成元から受け取った引数numberを、インスタンス変数numに格納する
def __del__(self):
SampleClass.num -=1 # インスタンスを削除する度に、クラス変数numを1デクリメントする
print(“このインスタンスを削除しました”)

“`

###上記のスクリプトファイルを格納したディレクトリと同じ階層で、Python3を起動

“`Python3:Terminal
$ ls
class_test.py
$ cat class_test.py
class SampleCl

元記事を表示

blender, python, らせん階段

らせん状にキューブを並べて照明当ててカメラ回そう、という思いつきで、作りました。
全体で124行あって、そのうちキューブを並べるのは20行くらい。照明部分とカメラ部分は他で作ったものの再利用です。もっと階段に見えるように改良が必要な感じがします。
動画1秒はtwitterで[この動画](https://mobile.twitter.com/naohiko7/status/1327607226660397056)です。
![bph38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/690216/3a0f6546-6275-3aaf-2aba-2c1e9c485cc0.png)

“`python3
# nh38 ==5階建ラセン。2020.11.14
import bpy
import math
# ========= DELETE ALL mesh, light, camera, みな削除する2行 =========
for item in bpy.data.objects:
bpy.data.

元記事を表示

Djangoのtemplateで演算処理を行う方法

##はじめに
django-mathfiltersというモジュールを利用することでテンプレート上での演算処理ができるようになります。この記事では、その実装方法について紹介します。

##参考
[django-mathfilters · PyPI](https://pypi.org/project/django-mathfilters/)

##環境
Python(3.6.2)
Django(2.1.7)

##インストール方法

### django-mathfiltersをインストール

“`python
pip install django-mathfilters
“`

### mathfiltersをINSTALLED_APPSに追加

“`python:settings.py
# Application definition

INSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.

元記事を表示

DjangoでRailsのhelperのような機能を実装する方法

##はじめに
この記事はDjangoで初めてアプリを作る際に、Railsのhelperのような機能がないか調べた際の個人的メモです。

##環境
Python(3.6.2)
Django(2.1.7)

##カスタムテンプレートフィルタ
Railsのhelperはhelper内で定義したメソッドをview側で呼び出すことができます。Djangoでも同じように別ファイルで定義したメソッドをtemplate側で呼び出せないか調べたところ、カスタムテンプレートフィルタを作成することで実現できるようです。

##実装方法
以下の手順で、カスタムテンプレートフィルタを作成できます。

###1. templatetags というディレクトリを作成
カスタムフィルタを導入したいテンプレートのアプリディレクトリ内にtemplatetagsというディレクトリ を作成します。

###2. templatetagsに \_\_init__.py を設置
templatetagsディレクトリ内で作成するファイルをモジュール化するために\_\_init__.pyを設置します。

###3. temp

元記事を表示

[Django]未ログインユーザーをログインページにリダイレクトさせる方法

##環境
Python(3.6.2)
Django(2.1.7)

##実装方法
まず下記のモジュールを各アプリのview.pyにインポートします

“`python:view.py
from django.contrib.auth.mixins import LoginRequiredMixin
“`

ログインが必須となるページの表示に関わるクラスに下記のように記載します。

“`python:view.py
class MypageView(LoginRequiredMixin, generic.ListView):
template_name = ‘index.html’

“`
LoginRequiredMixinは必ず__第一引数に指定__してください。そうしないとログインページにリダイレクトされません。

settings.pyにログインしていない場合のリダイレクト先(ログインページ)を指定します。

“`python:settings.py
LOGIN_URL = ‘/accounts/login/’
“`

これで完了

元記事を表示

Python3でwordcloudを行うスクリプトファイル一式

#資源配置構成

“`bash:Terminal
$ tree
├── const.py
└── word_cloud.py

1 directory, 2 files
“`

##( 定数定義スクリプト )

####*stop_words*の語句リストは、以下を参考にさせていただきました。

・ [PythonでWordCloudを作成してみました](https://mmtomitomimm.blogspot.com/2018/12/word-cloud.html)

“`Python3:const.py
fpath = “/Library/Fonts//ヒラギノ丸ゴ ProN W4.ttc”
stop_words = [‘てる’, ‘いる’, ‘なる’, ‘れる’,’する’, ‘ある’, ‘こと’, ‘これ’, ‘さん’, ‘して’, ‘くれる’, ‘やる’, ‘くださる’,
‘そう’, ‘せる’, ‘した’, ‘思う’, ‘それ’, ‘ここ’, ‘ちゃん’, ‘くん’, ”, ‘て’, ‘に’, ‘を’, ‘は’, ‘の’, ‘が’,

元記事を表示

selfの持つ意味

selfがないと、、、ローカル変数(関数内部で初期化される変数)と区別ができなくなる。

“`
class Sample:
num = 100
def show_num(self):
num = 200
print(self.num)
print(num)

a= Sample()
a.show_num()
“`
出力は以下の通り

“`
>>>100
>>>200
“`

print(self.num)とprint(num)でうまく区別されているということになります。

元記事を表示

Import Error: libffi.so.6: cannot open shared object file: No such file or directory

# TL;DR
ファイル`libffi.so.6`がimportできなかったことにより、Jupyter notebookの起動に失敗したときの解決法です。私の環境では`pyenv`でpythonのversion管理を行っていたので、同様の管理をしている方向けです。

## Error
“`
% jupyter notebook
Import Error: libffi.so.6: cannot open shared object file: No such file or directory
“`

## 解決法
こちら[^1]より、

“`
% pyenv version
i.j.k(set by $HOME/.pyenv/versions/i.j.k)
% pyenv install i.j.k
Installed Python-i.j.k to $HOME/.pyenv/versions/i.j.k
“`
と使用していたversionのPythonをインストールし直せば良いです。これで起動できるようになっている筈です。

[^1]: [Pipenv install fa

元記事を表示

Djangoの開発開始手順を簡潔にまとめてみた

### Djangoの開発開始手順を簡潔にまとめてみた
これまで数十個のプロダクトをDjangoで作ってきましたが、
実際に開発を開始する手順はだいたい同じなので、今回簡潔にまとめてみました。

**開発開始フロー**

1. フォルダを作成
2. 仮想環境を作る
3. Djangoをインストールする
4. プロジェクトを作成する
5. アプリケーションを登録する
6. settings.pyで基本設定を行う
7. 基本実装を行なっていく。

といった流れです。

#### フォルダを作成

まずはターミナルからプロジェクト用ディレクトリを作成します。

“`.sh

mkdir sample_project
cd sample_project

“`

#### 仮想環境を作る

次に仮想環境を作ります。

“`.sh

virtualenv myvenv
source myvenv/bin/activate

“`

#### Djangoをインストール

Djangoをインストールします。
postgreSQLを使うので、psycopg2-binaryもインストールします

元記事を表示

OTHERカテゴリの最新記事