Python関連のことを調べてみた2021年10月20日

Python関連のことを調べてみた2021年10月20日

FreeBSDでPILLOWを使う

# エラーが出た
UbuntuからFreeBSDにPython環境を移行しようとして詰まりました。

“`
ImportError: The _imagingft C module is not installed
“`
というエラーが出てしまい、しばらく解決しなかったのでメモ。

## 試したけどダメだったこと
以下のコマンドを試してPillowの再インストールをしてみたものの、できませんでした。

“`
sudo pkg install freetype
“`

## 最終的に解決したコマンド

“`
sudo pkg install py38-pillow
sudo pip uninstall Pillow
sudo pip install Pillow –no-cache-dir
“`

参考
https://buildmedia.readthedocs.org/media/pdf/pillow/latest/pillow.pdf

元記事を表示

[PyTorch] NLLLoss と CrossEntropyLoss の違い

# この記事で説明すること
PyTorchのチュートリアルなどで,`torch.nn.NLLLoss` を交差エントロピーを計算するために使っている場面を見かけます.
私は初めて見た時,なぜ `torch.nn.CrossEntropyLoss` を使っていないのか疑問に感じました(こっちの方が関数名で何をするか想像しやすいし…).
この記事では,この `NLLLoss` がどういう計算をしているのか,`CrossEntropyLoss` とどう違うのかについて説明します.

# `LogSoftmax` + `NLLLoss` と `CrossEntropyLoss` は同様の計算を行う
結論を述べると,`torch.nn.LogSoftmax` に続いて `torch.nn.NLLLoss` を適用するのと,`torch.nn.CrossEntropyLoss` を適用するのは同じことです.
以下のコードで実際に確認してみます.

“`python:LogSoftmax+NLLLossとCrossEntropyLossの違い
import torch
import torch

元記事を表示

python で Pillow(PIL)を扱う実行ファイルを作る際のエラーについて

#はじめに
Pillow を利用した実行ファイルを生成する際に出たエラーとその対処法について書いておこうと思います.

#やりたいこと
Pillow を利用したコードについて,Pyinstaller を用いて実行ファイルを生成します.

#問題点
import PIL を行い PIL.Image 関数を利用しようとすると,開発環境上では上手く実行できたのですが,Pyinstaller を利用して生成した実行ファイルを使うと プログラムが停止します.
新しいバージョンの Python だと Pillow はデフォルトで入っているようですが, Pyinstaller と Numpy の互換性の問題があり,Pyinstaller やその他のモジュールは古いバージョンを利用しているため手動で入れる必要があります.

#流れ
そこで私の行った対処についてまとめておきます.内容はあまりまとまっていないですし,細かな検証も行っていません.私の行った対処と動いた環境だけまとめておきます.
まず,普段通り pyinstaller (ファイル名).py –clean –noconsole –onef

元記事を表示

【Python】XMLのデータを読む

# はじめに

今日はXMLのデータをpython script で読むためのメモです。本当にただのメモ。

# 内容

標準ライブラリを使ってできます。

https://docs.python.org/ja/3/library/xml.etree.elementtree.html

なのですが、とりあえず動かしてみたメモを。

## 例

全くXMLを分かっていないのですが、“`xml.etree.ElementTree“` というのを使えばできるようです。

– 木構造のデータを fromstring で読み込める。
– root も child もtag と attribute を持っていて、.tag, .attrib でアクセスできる
– 値?は .text で参照できる。

iterator でアクセスする場合もあるけれど、今回は下記の単純なサンプルなので必要なった。

“`Python
xml_string = \
“””
frame<

元記事を表示

Pythonでesa.ioのAPIを触る

# はじめに
ドキュメント共有サービスであるesa.ioではAPIを公開していて、APIを通して記事やコメントの取得や作成、スターをつけたりけしたり等広くesa.ioの機能を利用できます。

今回は、pythonでesa.ioのAPIを触ってみましょう!

# インストール
pythonで作成されたesa APIのクライアントライブラリを利用して、APIにアクセスします。
ライブラリ: [piyo](https://github.com/argonism/piyo)

“` shell
pip install piyo
“`

# APIを叩いてみる

とりあえず、クライアントをnewします。
``と``は自分のアクセストークンとチーム名に置き換えてください。
Clientにアクセストークンを渡す代わりに、環境変数のESA_ACCESS_TOKENにアクセストークンをセットしても大丈夫です。

“` python3
from piyo import Client

def main():
client = Client(a

元記事を表示

Cartopy を用いて地図上の散布図を作りたい場合

#1. はじめに

[Cartopy](https://scitools.org.uk/cartopy/docs/latest/) についての日本語記事の多くには [cartopy.crs.PlateCarree](https://scitools.org.uk/cartopy/docs/v0.15/crs/projections.html) の記載があり、つまり正距円筒図法を用いたものが多いですが、他の図法を用いて地図上にデータをプロットする方法を紹介した記事が見当たらなかったので、薄い内容ですが投下します。

本ページの内容のほとんどは、以下の参照元を解釈したものです。

Understanding the transform and projection keywords — cartopy 0.20.0 documentation
https://scitools.org.uk/cartopy/docs/latest/tutorials/understanding_transform.html

※本ページのスクリプトの利用は自己責任でお願いします。
#2. 目次

元記事を表示

企業の基本理念をBERTScoreで評価してエントリーする企業を選ぶ

あと数年でAI面接が施行される。機械が人間を選別する時代がすぐそこまで迫っているのだ。機械で人間を選ぶことが許されるのならば、機械で企業を選ぶことも許されるのではないだろうか。ということで今回はそれぞれの企業の基本理念をBERTScoreを用いて評価し、エントリーする企業を選ぶときの判断材料にしていく。

#企業の評価点

企業を選ぶときには実に様々な情報を用いなければならない。事業内容やライバル会社、決算情報など項目はたくさんある。判断材料の情報のなかで一番大切なんじゃないかと思ったのが企業理念だ。やはり企業理念こそがその企業を表しているといっても過言ではないだろう。しかし、その企業理念の中でも最も大事なのが基本理念ではないだろうか。ということで企業の基本理念を用いて評価を行っていく。基本理念は文章なので、文章を評価できるようなものを用いなければならない。今回はBERTScoreというものを使っていく。

#BERTScoreとは

BERTScoreとは簡単に言えば文章の評価基準のことである。詳しくは以下のサイトを参考にしてほしい。

https://ai-scholar.tech

元記事を表示

ABC223 C – Doukasen が解けた

https://atcoder.jp/contests/abc223/tasks/abc223_c

![abc223c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/c5fc6065-2f12-5597-64f2-83909063f669.png)
![abc223c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/c1f93b29-2754-112e-e1c1-a29b733c1752.png)
![abc223c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/61c27a35-dc6a-0fb1-5394-f63850ad9a65.png)

本番当日は気が付かなかったけど、
距離/速さ = 時間、だよね。
ってことは全てが燃えきるまでの時間/2 の時間までに
左から何センチまで燃

元記事を表示

自分ちの猫をGoogleCloudVision APIに読み込ませてみた結果

# GoogleGloudVision APIを使って画像を解析するコード

こちらの動画を実践しました。

サクッと出来てめちゃくちゃ良かったです。

index.pyと同じ階層にimage.jpgという解析したい画像を入れて実行するだけ。

## 下準備
– GoogleCloudに登録しVisionを有効にする
– PCにgoogle-cloud-visionをインストール
 “`$ pip install google-cloud-vision“`

– jsonでcloud-visionのクレデンシャルを発行してpythonファイルと同じ階層に入れる
– シェルのprofileにクレデンシャルファイルのパスを登録
自分の環境はシェルがbashだったので~/.bash_profileに登録

“`
echo ‘export GOOGLE_APPLICATION_CREDENTIALS=”

元記事を表示

ABC220 C – Long Sequence を解いた

https://atcoder.jp/contests/abc220/tasks/abc220_c

![abc220c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/25a2a587-ae53-9095-e082-aa93f88cc8ae.png)
![abc220c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/6f6349bc-cab5-c3f9-099b-76f5b3b7ab31.png)
![abc220c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/fee817e2-d5f7-baa4-180c-38ec03682bcc.png)

X を超えるた項数であることに注意。

“`abc220c.py
N = int(input())
A = list(map(int,in

元記事を表示

ABC217 C – Inverse of Permutation を解いた

https://atcoder.jp/contests/abc217/tasks/abc217_c

![abc217c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/4b62373b-3b5f-20ce-1ab4-65e8403c0fc6.png)
![abc217c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/16b0ba63-48ad-ab77-b214-914950393df6.png)
![abc217c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0137bfe9-2048-8936-bf26-8919c0dd6201.png)

文章の通りに打った。

“`abc217c.py
N = int(input())
P = list(map(int,input().sp

元記事を表示

遠隔授業のスライドを自動でスクリーンショットする裏技

#はじめに

普段遠隔授業を受けている学生さん!!
授業のスライドを残してくれない先生いますよね?
後でスライドを見直したい場合,毎回手動でスクリーンショットを取らなくちゃいけなくて面倒です.

ということで,Pythonを使って画面の変化を検出しスライドを自動でスクショしてくれるプログラムを作っていきたいと思います.
#使用言語
* Python

#使用ライブラリ
* OpenCV (画像処理)
* PyAutoGUI (スクリーンショットの自動化)

標準ライブラリ:numpy,time

#仕組み
**①一定時間ごとに画面をスクリーンショット
②画面の変化量を調べ,一定の数値を越えたらその画像を保存**

#実装
##二つの画像の変化量を返す関数

“`python:ImageChangeRate.py
import cv2
def ImageChangeRate(img1,img2,isShow=False):
# 画像をグレースケールに変換
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
img2 = c

元記事を表示

OLSをbootstrapでやるためのコードを書いてみた(Python)

Pythonで回帰分析(OLS)を行うときに、bootstrap法を指定するコードが見つからなかったので、「OLSをbootstrapで行うための関数」bootstrapOLSを自分で作ってみました。

なお、以下のコード及びbootstrapの説明は、指導教員の先生から頂いたRスクリプトと教えてもらったことを参考にして、僕がPythonで実装したものです。
もしかすると、その内研究室や先生のHPのリンクが貼られたり、もしくは先生に確認してもらった後に怒られて記事自体が消えるかもしれませんがご了承ください。

先生が作ったRスクリプトは、サンプルセレクションモデルをbootstrapで回すという内容だったので、OLSをやってるこの記事はとりあえず問題ないはずです(ですよね?笑)。。

#バージョン
python 3.8.10
statsmodels 0.12.2
scipy 1.6.2
tqdm 4.59.0

#簡単な説明
###やり方
この記事で紹介するbootstrap法では、サブサンプルをオリジナルのサンプルから復元抽出(母集団から取り出した標をは母集団に戻してからつぎの標本を

元記事を表示

Amazon Cognito をバックエンドから Python で利用する

# はじめに

Amazon Cognito はサービスのユーザー情報・認証を管理するサービスである。 そして、その一般的な利用シナリオとしては以下のページで説明されている。

https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/cognito-scenarios.html

しかし、ここで説明されている6つのシナリオは全てクライアント (App) から直接 Cognito を呼び出している。 ユーザー情報・認証の管理を行うサービスというのであれば、バックエンドサービスから認証部分だけを分離するという設計をして、以下の図右のようにバックエンドから直接 Cognito を使いたいという要望もあるはずである。 ここではこれを「バックエンドからCognitoを利用する」と呼ぶことにする。

![スライド1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502582/d91b8d5a-525c-59e6-86a2-bf597518310

元記事を表示

emacs hy-mode

Lisp の人の言質はだいたい典型的な特徴があり、自賛と懐古的な礼讚が7割入るので、9 割引で信用するとして、残りがよくわからないので、自分もそっちに入ってみるしかない。

Android で 64bit アーキテクチャの Arm CPU で common Lisp ぽいことをやろうとすると今のところ唯一 hy だけ方法がわかる。アプリでは CL REPL (ecl)が動くが。

https://www.lights-of-holiness.eu/cl-repl/blog.htm

termux では 32bit だと ecl が動くらしいが、64bit ではエラーになった。他にも debian や ubuntu をセットして、そこへビルドする等、実践しているという情報はあるが、Lisp 側に変更点がなくともホスト側が日々変更があり今日どのようにするのか調べて実践するのには数日間かかる(数十日でも、わからないまま)。

# hy lang

https://docs.hylang.org/en/master/

他の Lisp だと計算機科学のカリキュラムと理想というレールの

元記事を表示

【Django】django-allauthのformやhtmlを上書きする方法

##1, allauthとは
viewを自分で書かなくても次の様なことが簡単にできるようになる。

* signup
* login
* passwordのリセット・変更
* mail addressの登録・変更・削除
* social login

##2, インスール
このページでは、formsやhtmlの上書きについて書くので基本的な設定については割愛します。

https://django-allauth.readthedocs.io/en/latest/installation.html

“`terminal:terminal
$ pip install django-allauth
“`

##3, formsの上書き
###settings.py
まず下準備をしておく。

allauthの使いたいフォームをリストアップし、settings.pyに上書きする指示を出します。

social accountを使う場合はほぼ全て必要になります。

####キーとデフォルト値
まずデフォルトの設定を見てみます。

`allauth.account.forms.`以降を調整す

元記事を表示

Pythonで ‘U+5B57’ <--> ‘字’ 変換

# なに
Pythonで `’U+5B57’`<-->`’字’`のような、`’U+xxxx’`という文字列とそれが指し示す文字の相互変換を行います。

ここで注意なのが、「python Unicode 文字列 変換」とかでググるとあまた出てくる`unicode-escape`うんぬんの話ではないです。

# 変換対象
`’字’` … 文字列
`’U+5B57’` … 文字列

# 方法

* `’U+xxxx’` –> 文字

“`python
u = ‘U+5B57’
print(chr(int(u[2:], 16)))
# output: 字
“`

* 文字 –> `’U+xxxx’`

“`python
kanji = “字”
print(f”U+{hex(ord(kanji))[2:].upper()}”)
# output: U+5B57
“`
# おわり
以上です。
お疲れ様でした。

元記事を表示

ABC216 C – Many Balls から学んだ

https://atcoder.jp/contests/abc216/tasks/abc216_c

![abc216c_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/68e13489-7a7c-4912-e08e-650a2b33f6ea.png)
![abc216c_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/40b3a374-771f-328d-ad5d-2ad8db9ede8e.png)
![abc216c_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/baa5f524-093e-3de8-e01d-81bb92d7c750.png)

分からないので解説確認。

なるほど。以下で通った

元記事を表示

googlecolabでkaggleのデータをダウンロードする。

# 概要
[この記事](https://ichi.pro/kaggle-de-tasetto-o-googlecolab-ni-chokusetsu-daunro-dosuru-220937211860794)をやります。
上の記事で動かなかったらこのqiitaの記事を見てください。

主にやることは以下です。
1. kaggleのAPI keyを取得する(kaggle.jsonの取得)
2. googledriveをgooglecolabにマウントする。
3. driveにkaggle.jsonをアップロードし、pathを指定してcolabからアクセスする。
4. kaggle.jsonとpythonのkaggleを用いてデータのダウンロード

## 1. kaggleのAPIkeyを取得
* kaggleのホームで右上の自分のアイコンをクリック
* 出てきたタブのyour profileをクリック
* 自分のプロファイルの下の列でaccountをクリック
![スクリーンショット 2021-10-19 16.33.58.png](https://qiita-image-store.

元記事を表示

Windows環境でpythonとseleniumを動かすまで(初心者)

# Pythonインストール
[Python公式](https://www.python.org/downloads/)から最新版インストーラをダウンロードしてインストールしてください。参考は[こちら](https://www.javadrive.jp/python/install/index1.html)。

インストールが終わったら、以下のコマンドでバージョン確認します。

“`bash:cmd
python -v
“`
「コマンドが見つからない」と出ていれば、python.exeファイルのあるフォルダーパスを環境変数に設定し、コマンドプロンプトを再起動して上記コマンドを実行してください。

# パッケージのインストール

“`bash:cmd
pip install selenium
# chromeバージョンが94.・・・の場合のドライバをインストール
pip install chromedriver-binary==94.*
“`
chromeバージョンの確認方法は[こちら](https://mhtdesign.net/guide/version-confirmati

元記事を表示

OTHERカテゴリの最新記事