Python関連のことを調べてみた2022年04月03日

Python関連のことを調べてみた2022年04月03日
目次

GitHub Copilotの使用方法:Python、PyTorchを少しだけ実装してみた動画解説記事です

本記事ではVScodeのGitHub Copilot拡張機能を使用しつつ、Python、PyTorchで実装を少しだけ試した内容を動画付きで紹介します。

**本記事の内容**

0. GitHub Copilotとは
1. GitHub CopilotでMNISTのDataLoaderを作成し、画像を描画してみる
2. 関数の作成・実行と、docstringの自動作成
3. さいごに

## 0. GitHub Copilotとは

「GiHub Copilot」とは、コーディング時にコーディング内容をAIが自動提案(自動補完機能にほぼ似ている)してくれる機能です。

先に記述したこれから実装したい内容を解説したコメント文や、現在コーディング途中の内容を入力とし、その後コーディングで入力するであろう続きの内容を補完的に提案表示してくれます。

まさコーディング時のCopilot(日本語では副操縦士)という名称が表す通りとなります。

「GiHub Copilot」は米国OpenAIが開発した「GPT-3」と呼ばれる、BERTと同じくTransformerをベースとした自然言語処理

元記事を表示

plotly で複数のサブプロットを取ってグラフを追加する

plotlyの勉強中。メソッドがやたらあって検索すると色々なやり方がヒットして戸惑う……。

plotly で3行・3列のサブプロットを取る。そして、1行1列目、2行2列目、3行3列目に折れ線グラフを追加したいとする。以下の3つはすべて同じ結果。

~~~python
from plotly.subplots import make_subplots

fig = make_subplots(rows=3, cols=3)

#「折れ線グラフを追加する」メソッド。どのサブプロットに追加するかをrow,colで指定する。
#何も考えずに追加するならこれが一番簡単。
fig.add_scatter(y=[1,3,1], row=1, col=1)
fig.add_scatter(y=[2,2,2], row=2, col=2)
fig.add_scatter(y=[3,1,3], row=3, col=3)
fig.show()
~~~

“`python
from plotly.subplots import make_subplots

fig = make_subplots(row

元記事を表示

Google Code Jam 2022 予選最終問題解説

Google Code Jam(GCJ) 2022 予選参加約3万人中224位になりましたので、記念に記事を書きました。

世界で394人しか解けなかった! 最終問題(Twisty Little Passages)の解説をします。しかしながら、最後でパラメータを試行錯誤しているため、解法として合っているかどうかは謎です。

# 1. 問題概要

連結とは限らないが単独頂点は存在しないグラフ構造において、以下のクエリーを`K=8000`回まで行うことで、全体の辺数を推定する、インタラクティブ問題です。GCJではインタラクティブ問題の出題が多いようです。

クエリー
+ T 数字: 指定した数字の頂点に瞬間移動(Teleport)する。頂点番号と隣接辺数が返る。
+ W: ランダムに選定された辺を経由して隣接頂点に移動(Walk)する。頂点番号と隣接辺数が返る。
+ E 数字: 最後のクエリーとして辺数の推定値(Estimate)を解答する。テストケースを終了する。

推定値はかなりの幅の誤差を許容するとともに、全体のケースの9割以上を正解することでACとなりますので、マラソン問題のように

元記事を表示

Databricksでmatplotlibを使う

[Matplotlib \| Databricks on AWS](https://docs.databricks.com/notebooks/visualizations/matplotlib.html) [2022/2/1時点]の翻訳です。

:::note warn
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
:::

:::note info
**訳者注**
– Databricksには簡単にグラフを表示する機能がビルトインされています。詳細は[Databricksにおけるデータの可視化](https://qiita.com/taka_yayoi/items/36a307e79e9433121c38)を参照ください。
– matplotlibにおける日本語文字化けについては、[こちら](https://qiita.com/uehara1414/items/6286590d2e1ffbf68f6c
)の記事を参照ください。
:::

Matplotlibの図の表示方法は、使用しているDatabricksランタイムのバージョン

元記事を表示

ABC246 D問題 2-variable function を考える

# 公式ページ

https://atcoder.jp/contests/abc246/tasks/abc246_d

# 記事の内容
この問題の公式解説を読んだものの、尺取り法による高速化がすぐに理解できなかったので、考え方をメモ
ついでにQiita初投稿です。

# 問題の要約
$N \leqq X=a^3+a^2b + ab^2+b^3$ を満たすような非負整数 $(a,b)$ の組の内、
$X$ 最小となる $(a,b)$ を求める。
$N$は標準入力から与えられ、$0 \leqq N \leqq 10^{18}$ を満たす

# 基本的な考え方
$X=a^3+a^2b + ab^2+b^3$ であるから、$b=0$ としたときに$X=a^3$なので、$a \leqq 10^6$
 ⇒ 探索範囲の終点。bも同様。

$a,b$ は非負なので、$X \geqq \ 0$。
$a,b$ は大小関係が無く区別する必要はないので、
$a: 0 \rightarrow 10^6, \ b: 10^6 \rightarrow 0$ へ探索。

これだけでもAC可能。

# 尺取りの考え

元記事を表示

recsys-pythonをやってみる【第1章】

# はじめに
レコメンドシステムに携わっているので、Pythonによる推薦システムの演習問題集であるrecsys-pythonを解いてみました。
まずは1章です。
参考にしたサイトは以下です。
https://note.nkmk.me/
https://oregengo.hatenablog.com/entry/2016/03/09/132214
https://qiita.com/okkn/items/54e81346d8f35733ab5e
https://biotech-lab.org/articles/12701

# 01 評価履歴の生成
“`
import numpy
Du = numpy.array([[5, 3, 1],
[6, 2, 1],
[4, 1, 1],
[8, 5, -1,],
[2, 4, -1],
[3, 6, -1],
[7, 6, -1],

元記事を表示

【個人開発】爆速な賃貸物件の検索サービスを作った

個人開発で **[賃貸物件の検索サービス Comfy](https://comfy.maison/)** を作りました[^0]。グラフや地図でサクサク絞り込める UI が特徴のサービスです。**とにかく気持ち良い使い勝手を実現**するために色々工夫しています。

![comfy_20211130_light.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/138646/1ffac3b2-6db5-5d30-3d47-1bdd8b3a8011.gif)

既にリリースからは 4 ヶ月以上経っているのですが、改めてサービスの概要や、システム構成及び使用した技術・サービスをご紹介しようと思います。[^article]。

[^0]: 2021年の 7 月に最初のリリースをしたのですが、色々あっていったん閉鎖した後 11 月に再リリースしました。
[^article]: この記事は、2021年7月の初期リリースの直後に Zenn に投稿した記事の大幅な改訂版になります。 Zenn の記事は 7 月のサービス閉鎖

元記事を表示

AtCoder Beginner Contest 246 A~C 3完記事

アルゴリズムの学習改善のための自身の備忘録及び学習の一環として記事を書くことにしました.
読んでくれた方で何かありましたら気兼ねなくコメントしてください.お待ちしております.

# [A – Four Points](https://atcoder.jp/contests/abc246/tasks/abc246_a)

## 問題文 概要
長方形の$3$点が与えられる.残りの$1$点はなにか.

## 制約と入力
制約
>$-100 \leq x_i,y_i \leq 100$
>$(x_1,y_1),(x_2,y_2),(x_3,y_3)$のすべてを頂点に持つ長方形がただ一つ存在し,その各辺は$x$軸または$y$軸に平行であり,面積は$0$ではない
>入力は全て整数である

入力
>入力は以下の形式で標準入力から与えられる。
>$Ax_1 \ \ y_1$
>$Ax_2 \ \ y_2$
>$Ax_3 \ \ y_3$

## 考察
$x_1,x_2,x_3$の排他的論理和を求めると,対にならないただ一つが決まる.
同様に,$y_1,y_2,y_3$の排他的論理和を求める.
これが答

元記事を表示

[ABC246 D] 2-variable Function ざっくり解説

# 初めに

公式と若干説明が違いそうなので書いておく。
あまり数学的な整理はしないので、正確な理解は別の説明に譲る。

解説的に色弱の方にはわかりづらい内容かもしれないのでそこは申し訳ないです。(グレースケールで描いたらなんか錯視的に直観とずれたので、色付きのままです。)

# 問題
https://atcoder.jp/contests/abc246/tasks/abc246_d

# 当時の分析

因数分解し始めて時間を食ったのち、とりあえずエクセルで横軸a,縦軸bで実際に描写して値がどう変化するかを観察してみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522928/8e148f07-efec-3e99-5ace-50aa12130298.png)

これを眺めながら、

– Nとして特定の色を指定されて、どれだけ近い色を見つけられるか、という問題ともいえる。
– 色の変化は左上を中心とした同心円状に変化しているように見える。

という訳で、例えば薄めのオレンジ色を

元記事を表示

Kaggleの臨床検査データセットを使ってみた① ~モデルの性能比較をしてみた~

# 概要
Kaggleの血液検査データセットを使ってデータ分析をしてみた。
いろいろ試してみた結果、量が多くなったので分割します。
今回はその①

使用したデータセット:[Patient Treatment Classification (Electronic Health Record Dataset)](https://www.kaggle.com/datasets/saurabhshahane/patient-treatment-classification)
インドネシアの病院で集められた血液検査の結果から、患者に治療が必要かどうかを判定する

# モデルと評価指標
**今回使用したモデルは以下の6種類**
1. XGBoost
2. ニューラルネットワーク
3. ランダムフォレスト
4. ロジスティック回帰
5. 決定木
6. k-近傍法

**評価指標**
一部モデルでaccuracy & cross validationを試していますが、主に以下5項目
1. ROC曲線
2. ROC-AUC
3. 特異度
4. 再現率
5. f1スコア

## データ確認
データは貧血に

元記事を表示

【Python × FastAPI × Heroku】Procfile はこう書け!

# 目的
fastAPI と Heroku を使用した場合の Procfile についての注意点を示すこと

# OK
“`Procfile
web: uvicorn timelabAPI:app –host=0.0.0.0 –port=${PORT:-5000}
“`
IPアドレスを 0.0.0.0 にしておく!
Heroku 上で動かすときに、外部から呼び出し可能になる。

# NG
“`Procfile
web: uvicorn timelabAPI:app
“`

IPアドレスが 127.0.0.1 となる。
これでは、Herokuのローカル 上でしか動かない。
外部から呼び出せない。

元記事を表示

pip install 時のエラー(pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.)

# 発生したエラーについて
## エラーの本文
“`bash
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”,)’: /simple/pip/
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host=’pypi.org’, port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module

元記事を表示

【初心者が始める】githubの環境構築(後編)

前回投稿した「【初心者が始める】githubの環境構築(前編)」に引き続きgithubの環境構築を最後までやった際の個人的つまずきポイントを残そうと思う。

今回も前編に引き続き下記リンクを参照しながら環境構築を行なった。

https://prog-8.com/docs/git-env

今回つまずいた箇所は、上記リンク手順5の「githubにプッシュする」の下記コマンドを実行した際、
“`python:
$ git commit -m “Create index.html”
“`
下記の表示が現れたことについて
“`python:
On branch development
nothing to commit, working tree clean
“`
こちらは正常にgit commitできている時の表示らしい。
nothingが不安を掻き立てるが、気にせず次の手順へ進もう。

この次に最後のプッシュコマンドを実施した際(下記がプッシュコマンド)
“`python:
$ git push origin master

#著者は前編にて、”initial branc

元記事を表示

【緑を目指す灰・茶必見】Atcoder ABC246 C・D問題 Python3解説

**ABC246**の**C,D**問題を、**Python3**で解説します!

ょゎょゎな筆者でもわかる、読みやすさを重視した、**初心者**向け解説です(´・ω・`)

ゆっくり見ていってね(`・ω・´)キリッ

# 目次
[1. C問題 – Coupon](#-c問題-coupon)
[2. D問題 – 2-variable Function](#-d問題-2-variable-function)

# C問題 『Coupon』

問題ページ:[C問題 – Coupon](https://atcoder.jp/contests/abc246/tasks/abc246_c)

C問題までは、forループとか書ければ、アルゴリズム知らなくても、なんとなく解ける気がする(気がするだけ)。
クーポンの問題、筆者はケチな大阪人なので得意かも(`・ω・´)
Nはせいぜい $10^5$ なので、時間はなんとかなりそう。

### 考え方
商品を高いもん順にソートしておく。
まず、商品の値段が0円にならないように、クーポンを使っていく。
クーポンを使った商品の値段は、値引き後の値段に置き換えて

元記事を表示

Markdownをいい感じにDeepLで翻訳するツール作った

単なるMarkdown翻訳機としても使えますが、スライド生成ライブラリと組み合わせると極めて強力です。

![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232088/3965c4d6-0efc-f0a8-065f-6c1f31f2758d.gif)

※要:DeepL API
※スライド生成は[Marp](https://marp.app/)によるもので、作ったのは中間の翻訳部分です

## リポジトリ

https://github.com/koshian2/MarkdownDeepL

## 仕組み
* DeepL APIで翻訳する
* Markdownを翻訳結果でのマークアップのミススタイリングを、正規表現で置き換え
* 正規表現のルールをユーザーが独自定義可能

[DeepLのAPI](https://support.deepl.com/hc/ja/articles/360021200939-DeepL-API-Free)が使えれば誰でも使えます(無料版でもOK)

#

元記事を表示

Python を使用して Azure Database for MySQL に接続して 自動生成データを書き込みしてみました

## 概要

[この記事](https://qiita.com/turupon/items/5e06c922f73208ef5ad6) の応用編です。 指定した件数・間隔でデータを自動生成し、MySQLサーバのデータベースに書き込む Python プログラムです。テーブルの初期化、データの読み込み、データの削除も可能となっています。

### ローカル環境

macOS Monterey 12.3
python 3.8.12
Azure CLI 2.34.1
mysql Ver 8.0.28 for macos12.2 on x86_64 (Homebrew)

### 前提条件

1. Azure環境がすでに用意されていること(テナント/サブスクリプション)
2. ローカル環境に「azure cli」がインストールされていること
3. ローカル環境に「mysql」がインストールされていること

### 事前準備

[この記事](https://qiita.com/turupon/items/0ce9dfaf3df3c39e5111) を実行し、Azure Database for M

元記事を表示

【Python】Tkinterで画面にフィットするフレームを作成

## 注意事項
+ 自分用の簡単なまとめであり,説明はほとんどありません.
+ 内容は時間があるときに補充します.

## 心の声
+ いまどき私のようにPython&TkinterでGUIを作成する人はいるのか…

## ポイント
+ Frameを`pack`で配置する場合は,`expand`,`fill`に注意する.
+ `expand`:**親フレームの**余ったスペースに対して,その分配を決定する.
+ 分配は,`expand=True`を持つフレームのみに行われる.
+ `fill`:**該当フレームの**利用可能なスペースに対して,指定された方向に拡大する.
+ fill=tk.Yでは,縦方向にのみ拡張する.
+ fill=tk.Xでは,横方向にのみ拡張する.
+ fill=tk.BOTHでは,縦方向と横方向の両方に拡張する.

+ Frameを`grid`で配置する場合は,`rowconfi

元記事を表示

機械学習の習得に向けた日記

教養数学(微分積分学・統計学・線形代数)

2022年2月20日『統計の歴史』
>題名通り統計を歴史という切り口で説明する本です。。統計が組織や個人にとってどのような立ち位置で発展してきたか知るために読みました。
>>「数字で表現できない知識は貧弱で不十分で、科学的な思考手順を踏んでいない。」ウィリアムトムソン

2022年4月2日『数学公式のはなし』

機械学習Pythonモジュール

Numpy/Scipy/

元記事を表示

俺は長文matplotlibをやめるぞ!ジョジョーーーッ!!

タイトルオチです。

## 記事の背景
[あきとしのスクラップノート](https://akitoshiblogsite.com/)さんの以下の記事を読み、感銘を受けました。

[[python] context manger を使ってmatplotlibの図を大量生産する](https://akitoshiblogsite.com/context-manager-matplotlib/)

**そう、matplotlibってやたら行数多くなるんですよね…!**
まだ読まれてない方はこの記事より先にぜひ読んでください。

記事の内容をgithubでも公開してくださっています。

[contextplt -github-](https://github.com/toshiakiasakura/contextplt)

本記事では上記の記事に全面的に依拠しつつ、
データの渡し方を`dict`から`dataclass`にアレンジしてみました。
ささやかな差分ですが、自分の備忘録代わりにメモします。

## dataclassにしてみたコード
“`Python:
from typing im

元記事を表示

Pythonの判定(排他的論理和)

# pythonでの排他的論理和の判定
例えば、入力チェックをする際に、両方値が入っているもしくは、入っていない場合は不可で、
どちらか一方のみ値が入力されている状態を正とする場合のチェック処理

“`python: xor.py
# 入力データ(判定対象のデータ)
# data = {
# “data1”: “”,
# “data2”: “test”
#}

# boolでキャスト(しなくてもよいが明示的にしてみた)
if bool(data[“data1”]) != bool(data[“data2”]):
print(“排他的”)
“`

上記のように!=を使えば排他的論理和の確認ができる。

元記事を表示

OTHERカテゴリの最新記事