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

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

PythonでChallonge APIを使うチュートリアル

 日本語でまとまった情報がなかったので。

# Challongeとは

 https://challonge.com/ja

 トーナメントを管理するためのWebサービスです。ゲーム配信等で大会を行うにあたってはデファクトスタンダード的な存在かなと思います。Qiitaでは反映できないので貼りませんが、トーナメント表を埋め込んだりできるので便利です。

 ChallongeはAPIを用意してくれていて([ドキュメント](https://api.challonge.com/ja/v1))、以下の言語でライブラリが用意されています。

– Ruby
– Python
– Perl

 今回はこの内、Pythonのライブラリを実際に使ってみることにします。

# インストール

 以下のコマンドで[PyPl](https://pypi.org/project/pychallonge/)からインストールします。

“`
pip install pychallonge
“`

# APIキーの取得

 プログラム上で本人認証を行うためのAPIキーを取得します。Challongeの個人ページか

元記事を表示

ABC138 C – Alchemist から学んだ

https://atcoder.jp/contests/abc138/tasks/abc138_c

![abc138_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/ad745919-c267-c3c1-358d-f4b5a920c639.png)
![abc138_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/45443e11-7d1d-4c06-5306-a29b3acf6a78.png)
![abc138_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/82885a04-1d9a-2c98-73da-6f17b80bd1c4.png)

分からないので回答を見た。

https://www.youtube.com/watch?v=lWETOlGiuaI

なるほど。

悪かったとこ

元記事を表示

ABC134 C – Exception Handling から学んだ

https://atcoder.jp/contests/abc134/tasks/abc134_c

![abc134_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/06af2426-bdab-8f4b-0b22-5924e1f5fefb.png)
![abc134_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0cbbba18-fae2-dd52-f1c8-3cff080e9fb6.png)

何も考えず、書いて WA / TLE。

“`abc134c_ng.py
N = int(input())
A = []

for _ in range(N):
a = int(input())
A.append(a)

for i in range(N):#O(2*10^5)
if i != N-1:
print(max(A[i+1:]))#ma

元記事を表示

ABC132 C – Divide the Problems を解いた

https://atcoder.jp/contests/abc132/tasks/abc132_c

![abc132_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/a3b3035d-eb83-79f8-9c0c-cd50045530f1.png)
![abc132_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/cc525167-0437-360b-9ebf-a02c9af71d71.png)
![abc132_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/69ccbcf6-d77f-cdce-e02b-ce723a8baeb3.png)

ABCの数 == ARCの数ならば、N は必ず偶数となる。
じゃあ、半分にして、つなぎ目を比較すれば答えでは!?

“`abc132c.py
N

元記事を表示

コンピュータとオセロ対戦18 ~乱数検証~

https://qiita.com/tt_and_tk/items/068f2afde6db637e189f

[前回](https://qiita.com/tt_and_tk/items/9928f1848112785563ce)

# 今回の目標
[前回](https://qiita.com/tt_and_tk/items/9928f1848112785563ce)、評価値について調べると書きましたが、その前に乱数によって有利不利が生まれるかどうかについて調べたいと思います。
# ここから本編
今回、srand関数の引数を0~999まで変化させ、それぞれで100試合ずつランダム同士の対戦を行い、それぞれの勝率を調べました。
ここで勝率とは、黒側が買った回数をいうこととします。引き分けあるいは白が勝った数はカウントしません。
## 実行ファイル
ヘッダファイルとソースファイルは今までと全く同じです。
オブジェクト指向便利。
やっていることとしては、上述したことがすべてなので追加説明はありません。

“`run_rand_rand.cpp
#include “osero_geneti

元記事を表示

pip install が何一つ応答を返さなかったり、反応しなかったり、フリーズした時に見てほしい記事

# 起きたこと

wsl2上のUbuntuで、

“`
pip install (モジュール名)
“`
を実行しても何も起きない。エラーメッセージも帰ってこない。
フリーズ。応答しない。反応しないような状態。
Ctrl + Cで終了させるしかない。
エラーメッセージも出ないのでマジで何が悪いのかわからない。

# 解決策
X Windows Server(DISPLAY環境変数)の指定が誤っているので初期化する

参考
https://stackoverflow.com/questions/68369527/python3-on-wsl-2-takes-forever-over-6-minutes-to-import-keyring

ターミナルで以下を実行

“`
export DISPLAY=
“`

# 原因と思われるもの
pipをインストールし直そうとして、get-pip.pyを動かしてみたところ、それも動かなかったので、中のコードを漁ってみた。
keyring というモジュールをインポートするところで止まっていた。

keyring hangupとかで調べてみると以

元記事を表示

線形回帰を実装する際は正規方程式を書かずにムーアペンローズの擬似逆行列を利用する

# 概要

– 線形回帰モデルの最尤推定を実装する場合に、正規方程式を書くと思います(PRML3章など)
– 正規方程式を実装した場合に、(たぶん)逆行列の精度が悪く、推定結果の精度が悪い場合がある
– そこで、ムーア-ペンローズの擬似逆行列を使うと良いよ という話

正直なところ、何が原因かはっきりと理解できていないので、詳しい方教えてください。

# 環境

– ハード
– macOS Big Sur (11.4)
– Mac mini (M1, 2020)
– チップ Apple M1
– Python
– Python 3.9.5
– numpy 1.21.0

# 線形回帰の最尤推定解

モデルとしては以下の通り、普通の線形回帰モデルを考えます。

$$
y = \mathcal{N}(y | \mathbf{w}^{\top}\mathbf{\phi}(\mathbf{x}), \sigma^2)
$$

ここで今回は、特徴抽出関数$\phi_i(x)$は$x^{i}$の多項式を扱います。

導出は省きますが、計画行列$\Phi$を利

元記事を表示

FastAPI 色々なレスポンスまとめ

# この記事は?

自分の備忘録も兼ねて、FastAPI のレスポンスについてまとめました。
FastAPI の基本的な記述方法、HTTP の基礎的な知識については、ここでは説明していません。
チートシート的なものとしてご活用ください

以下のドキュメントを元に作成しました。

# JSON レスポンス (単純な方法)

FastAPI では、デフォルトでは JSON 形式のレスポンスをするようになっています。
`return`に辞書オブジェクトを配置すると、JSON に変換されてレスポンスされます。

“`py
from fastapi import FastAPI
app = FastAPI()

@app.get(“/”)
def index():
return {“mes”: “hello”}
“`

ただ、プレーンテキストを記述しても、MIME タイプは`application/json`としてレスポンスされてしまうので注意。
MIME タイプを調

元記事を表示

【Django】ManyToManyFieldをQオブジェクトで検索する時の注意点

## 目的
– 多対多の関係にある動画モデルとタグモデルを用意した
– 動画のタイトルと動画に紐づいているタグを複数指定して、動画を検索する機能を追加する

## モデルのイメージ

“`python
from django.db import models

class Movie(models.Model):
“””動画”””
title = models.CharField()
tag = models.ManyToManyField(Tags)

class Tag(models.Model):
“””タグ”””
name = models.CharField()
“`

– 動画テーブル(movie)

|ID|タイトル|
|:–|:–|
|1|A動画|
|2|B動画|

– 中間テーブル(movie_tag)

|ID|動画ID|タグID
|:–|:–|:–|
|1|1|1|
|2|1|2|
|3|1|3|
|4|2|2|
|5|2|4|

– タグテーブル(tags)

|ID|タグ名|
|:–|:–|
|1|ホラー|
|2|恋愛|

元記事を表示

【深層学習】活性化関数Leaky ReLUについて

深層学習モデルを構築する時、うまく活性化関数を選ぶことは大事です。
[前編](https://qiita.com/PuchiCorner/items/d71033e903c27be874a7)に続き、もう一つ活性化関数Leaky ReLUについて紹介したいと思います。

## Leaky ReLUとは?
Leaky ReLUはReLUの派生形の一つです。
数式を書くと

“`math
f(x) = max(ax, x)
“`
ちなみに、$a$の数値は0.01で設定される場合が多いです。
数式により、$x$が負数の場合であれば$f(x)$は$ax$になるでしょう。

Pythonで書いてみると

“`python
def leaky_relu(x):
return max(0.01*x, x)
“`

## Leaky ReLUの微分

– $x$が正数の場合であれば:

“`math
\frac{\mathrm{d} f(x)}{\mathrm{d} x}=\frac{\mathrm{d} x}{\mathrm{d} x}=1

元記事を表示

pythonでひらがなフォルダ名を生成するやり方

#起こったこと
python2.7でフォルダ名の文字列が文字化けする
ちなみに1行目に# -*- coding: utf-8 -*- はつけてます。

“`Python:ex.py
name = “あいうえお”
os.makedirs(name)
“`
これを実行するとフォルダ名が文字化けする

#windowsのフォルダ名の文字コード
てっきりshift-jisかと思っていたけどやってみるとutf-8っぽかった
コマンドプロンプト内ではshift-jisらしいがフォルダ名やファイル名はutf-8らしい。
ちなみにpython内で文字列の扱いは難しい
https://qiita.com/yubessy/items/9e13af05a295bbb59c25
https://qiita.com/miyase256/items/0e8cc40d95bf6236729e
が内容が分かりやすかった。

というわけで
https://qiita.com/inoory/items/aafe79384dbfcc0802cf
を参考にutf8に変換した

“`Python:ex2.py

元記事を表示

モジュールがないなら(半)自動でインストールすればいいじゃない

Qiitaは今まで見る専だったのですが、情報整理やスキルアップも兼ねて恐る恐る記事を書いてみました。

# 環境
– Windows 10
– Python2.7 及び 3.7
– PyCharm 2020

# 端的にまとめると
長くなってしまったためやったことを端的にまとめると
1. 『pkgutil.iter_modules()』を使用して全モジュールの一覧を取得
2. インストールしたいモジュールの一覧から全モジュール一覧にないモジュール名を抽出
3. 『subprocess.call()』でインストールしたいpipに抽出したモジュール一覧を文字列にして渡す

以上になります。

# こんなことが以前ありました
Python2と3の両方で動く処理を検証する度に別々の仮想環境をPyCharmで作成していてモジュールをインストールしてる時にふと思いました。

「これ、違う環境で度々インストールしなくちゃいけないのどうにかならないかな」
と。

インストールする作業もモジュールを一つ追加するだけなら問題無いとは思います。ですがそれ以上になるともうやってられなくて・・・。

そして思

元記事を表示

AnacondaでJupyter Notebookにnbextensionsをインストールする

#はじめに
Jupyter Notebookは、そのままでは、タイプしても候補が出ない(自動補完しない)為、エディターとしては使いにくい印象があります。
ここでは、Jupyter Notebookに自動補完(入力候補)機能を追加する為に、Anacondaを前提として、よく使われるnbextensionsをインストールする方法を説明します。

Anacondaの場合、「『pipは使うな』と書いてある、でも、『pipでインストールする記事しかない』」、ことが多く、未知のパッケージはインストールが怖い、というのが正直な所ではないでしょうか。

正確を期すため、英語のnbextenstionsの公式サイトを見ながら、実際にやってみました。
当該ページの日本語訳も、筆者が行いましたので、参考までに載せておきます。

【nbextenstions(英語)】
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html

#前提条件
* Anacondaがインストールされている
* AnacondaからJupyt

元記事を表示

ColabでOpenCV GPUを使っていく~~

# 概要
* ColabでOpencv GPUを使用する

それだけです。

# はじめに

Colabは無料で使えて、なおかつGPUまで無料で使えるのがいいですよね。
ある時、**「OpencvのGPUバージョンも、もしかしたらColabで使えのでは?」**と思い、方法を探したときの備忘録になります。

# ColabでOpencv GPU

`pip`でインストールできる`opencv-python`や`opencv-contrib-python`では、GPUは使えないですよね(もし、使えるのであれば僕の苦労が水の泡となってしまう)

なので、1からbuildする必要があります。
また、僕が実験した感じ、opencvのバージョンは最新じゃないとopencvが認識されませんでした。

参考にしたサイトは以下になります。
>* [ColabのGPUでOpenCVを使用する方法は?](https://ichi.pro/colab-no-gpu-de-opencv-o-shiyosuru-hoho-wa-41065314358367)

元記事を表示

クラス自体に対しての型ヒントに使える python の typing.Type

python の typing モジュールの `Type` についてご存知でしょうか。これは、クラス自体に対しての型ヒントに使えるものです。

ところで、私が初めてこれについて調べようと思った際、 “python typing.Type” といったキーワードで検索してみました。しかし、その際に検索結果として主に表示されたのは python の型ヒント全般に関する記事でした。そのため、所望の情報にたどりつい着くまでに少々苦労しました。そこで python の公式ドキュメントの typing のページを見直したところ、 [こちら](https://docs.python.org/ja/3/library/typing.html#typing.Type) に書いてました。(やはり最初に公式ドキュメントをしっかり読むべきですね。)

今回、 `typing.Type` について簡単にまとめたく、本記事を作成しました。

## typing.Type とは

下記、 [日本語版公式ドキュメント](https://docs.python.org/ja/3/library/typing.html#t

元記事を表示

Python3環境で日本語を使うとUnicodeEncodeErrorが出る問題

この記事は以前に投稿したものですが、諸事情でアカウントを作り直したため改めて投稿しています。内容は少し古いかもしれません。

# 背景

私の環境でpython(3.6.2)の文字列に日本語を使うとUnicodeEncodeErrorが出てしまいました。すぐ直せるだろうと軽く考えていたのですが、案外解決に手間取ったので備忘録がてら記事にしておこうと思いました。python2系で同様の問題と解決策を記載したページはいくつかヒットしたのですが、python3系の情報は私の検索の仕方が悪かったのか、まだ情報が少ないようです。
(ないとは言っていません。すでにもっと良質の情報をwebに公開されている先達の方はどうかご容赦ください。)

## 動作に失敗した環境
– MacOS High Sierra上のdockerコンテナ
– dockerイメージはconda/miniconda3をpullし、`conda update —all`したもの
– python version 3.6.2

サンプルコード

“`python:jp.py
print(‘日本語をプリントします’)
“`

元記事を表示

SPSS Modelerの2値分類モデル評価のための精度分析ノードと評価グラフノードをPythonで書き換える。信用リスクの判定モデルの評価

SPSS Modelerの精度分析ノードと評価グラフノードをPythonで書き換えます。

#0.データ
まず以下のようなデータを用いて決定木モデルを作ります。

目的変数
Risk:信用リスク

説明変数
Age:年齢
Income:収入ランク
Credit_cards:クレジットカード枚数
Education:学歴
Car_loans:車のローン数

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/223763/baaa8f9e-0a61-14c4-87dd-9f8bcc9c4665.png)

年齢や収入ランクから信用リスクを判定する2値分類のモデルを評価します。

#1m.①説明変数、目的変数の定義とモデルの作成 Modeler版

まず、データ型ノードで説明変数、目的変数の定義を行う必要があります。
Riskの尺度を「フラグ型」に変更し、「値の読み込み」ボタンをクリックします。その後、CustIDのロールを「なし」、Riskのロールを「対象」(目的変数の意味)を設定します。A

元記事を表示

Python mmap 使い方 (共有メモリ操作)

本日はプロセス間、スレッド間などで値をやり取りする方法を紹介します。

使用する手法は、C言語などを触ったことある人は聞いたことある人もいるかもしれませんが
「共有メモリ (Shared Memory)」という仕組みです。

Pythonで共有メモリを実装するのに便利な「mmap」というライブラリがあるので、
本日は紹介したいと思います。

####共有メモリとは
ざっくりですが共有メモリとは、名前の通りPCのメモリ上の一部を複数のプロセス間で使用できるようにする仕組みです。
最初はこのくらいの理解で十分だと思います。

複数のPythonアプリ間でデータの通信ができるので便利です。
応答速度もかなり高速です。

> [Python mmap公式ドキュメント](https://docs.python.org/ja/3/library/mmap.html)


###ソースコード

“`python:ClsMMap.py
”’ —————————
共有メモリ管理クラス
—————————”’
impor

元記事を表示

ESP32に書き込めない(Macでの環境, Big Sur)

#MacでESP32に書き込めない。
ESP32をMacに接続して、Arduino IDEで書き込もうとしたら、
エラーが出て、その先、何もできない。
コンパイルエラーみたい。
エラーメッセージをgoogle で検索してみると、

Qiitaの記事が見つかる。
この記事に従って、作業すればOKでした。

https://qiita.com/ashe1098/items/585d6474bd5d4833d39d

あとは、私自身の作業の忘備録としての記録を残しておきます。

#今回の作業内容
Macはpythonのデフォルトが、python2なので、 
python3への切り替えが必要ということで 上のURLの作業を行えば、OKのはずが、

python3がインストールされていないことが判明。
よって、Python3をインストール。

https://tipstour.net/python3-install-on-mac-after-catalina

というか、
https://www.python.org/  にアクセスして、
Downloadから、最新版(今回は、3.10.0)を

元記事を表示

AWS:S3からのデータのダウンロードとアップロードについて

# なぜ書こうと思ったのか

インターン先で、AWSを初めて使うようになり、S3からのデータのダウンロードとアップロードが苦戦したので、整理のために書こうと思いました。
# 目次

1. [そもそもS3とは?](#そもそもS3とは?)
1. [S3への接続とその確認方法](#S3への接続とその確認方法)
1. [S3からのダウンロードとアップロード](#ファイルのダウンロードとアップロード)



# そもそもS3とは?
Amazon Simple Storage Service、通称S3はオブジェクトストレージサービスであり、様々なユースケースのデータを保存して保護することができる。さらには、データを整理してアクセス制御を細かく調整するために使いやすい機能を提供するサービスである。
S3のメリットについては、以下の記事を参考
– [S3のメリット](https://aws.amazon.com/jp/s3/)

  • OTHERカテゴリの最新記事