Python3関連のことを調べてみた

Python3関連のことを調べてみた

【 Python 超入門書を ✨ 無料配布中です ✨ 】

プログラミングと Python が, 超初心者な方のために, 入門書を書かせていただきました (o'(ェ)’)人🐍✨

[第2版] になります 🐍

Windows11 を, プラットフォームとしております 🐍

amazon の規定で 「最長5日間」 までしか, 無料キャンペーンを行えないので, 4月21日から, 25日までの5日間だけ 「無料配布」 をさせていただいております 🐍✨

ご興味ありましたら, 何卒, よろしくお願いいたします 🐍✨

↓ ココ

https://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Python-%E5%85%A5%E9%96%80%E8%80%85%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%EF%BC%91

元記事を表示

読みにくいMNISTの文字を見つける

突然ですが、私はリアルでは字が汚いと言われることがあります。どれくらい汚いかと言われると、大学院生時代に生協で備品を注文しようとした時に個数を数字で書くと職員さんが読めないレベルで字が汚いらしいです(自分は達筆なのだと思っています)。
ところで機械学習で字といえばMNISTを想像される方が多いと思いますが、あれって実際機械学習を勉強するにしては字がきれいなのかとふと疑問に思うことがあります。生データを見てみると「え、読めない」と思うことがあるのですが、じゃあ機械学習を使ってみるとどうなるのかちょっと覗いてみましょう。
# コーディング
## ライブラリのインポート
“`Python3
from sklearn.datasets import load_digits
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split as tts
import numpy as np
import matplotlib.pyplot as plt

元記事を表示

VIFを計算する

以前書いた記事で自由に値を入れてシミュレーションするならVIFを計算して多重共線性を考慮した上で値を入れましょうと書いたことがあります。
今回はそのVIFについて書いていきます。
>独立変数間の多重共線性を検出するための指標の1つ。独立変数間の相関係数行列の逆行列の対角要素であり、値が大きい場合はその変数を分析から除いた方がよいと考えられる。10を基準とすることが多い。
>『統計WEB』より

分かりやすく言えば説明変数間で独立していない変数があります。でじゃあそういう変数ってどういうものかっていうと変数間で相関がある物だと考えてください。
当たり前ですけど変数間で相関があったらそのまま値を入れちゃダメで、相関に基づく回帰した値を入れないと実データと乖離する可能性があり再現性に難がある可能性があります。
そこでVIFを計算して変数間で相関のある変数を削除して全ての変数を独立させます。
ではここからは具体的にプログラムとデータを使ってやっていきま

元記事を表示

python GUI入門 tcl/tk 子ウィンドウ起動

# 実行サンプル
子ウィンドウ起動

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423803/f7c7c319-1289-0190-097d-8ad6596622a7.png)

・ボタン押下で mode 指定して、子ウィンドウ起動
 モード指定により、画面GUIが違うものとして表示される

・ChildWindowが既に存在する場合はメッセージボックスで通知し、新たに開かないようにする

・childWin.py で mode を引数として受け取る

・childWin 起動後、画面が閉じられるまで、次の処理は実行されないようにする

・main.py と childWin.py で情報受け渡しする

# 実行環境
windows10
python3.9.5

pythonモジュール tcl/tk

# 実行手順
ソースコードを作成する
windowsコマンドプロンプトでプログラム作成したフォルダに移動し、下記実行する
“`
python プログラム名.py
“`

元記事を表示

503を返すモック用Webサーバーの立ち上げ

「503エラーのテストしたいのですが、何か方法思いつきませんか」と質問されたので。
(おそらく何かしらのAPIを提供しているサーバーがエラーを返したときを想定しているのかな、と推測)。

API叩くツール等でモックサーバーを提供していると思われるのでそれを利用する、
AWSのアカウント等があるならロードバランサーを立ち上げる、
などいろいろな解決方法はあるかと思いますが、取り急ぎかつローカルでの検証であればpythonで十分かなーと単に503を返す標準ライブラリで起動できるサーバーをお勧めしました。
nodejsやRuby等でも同じことはできますが、仕事用の端末に入ってないのでPythonで。

“`python
from http.server import HTTPServer, BaseHTTPRequestHandler

class My503Handler(BaseHTTPRequestHandler): # BaseHTTPReuqestHanderに基本的な部品がある
def do_GET(self): # do_GETでGETメソッドがハンドリングできる

元記事を表示

Djangoの開発環境からhello worldまで

Djangoで株価の推移をチェックできるアプリケーションを作ろうとしています。そのため、Djangoの基本的な開発環境を調べて、hello worldまで出力させてみました。

# 環境
windows 11 Home
Linux version 5.15

# 手順
作成から使用するまでの大まかな手順です。
1. 仮想環境(venv)の作成
1. プロジェクトの作成
1. アプリケーションの作成
1. サーバーの起動

# 開発環境
Djangoの開発を進めていくうえでpythonのライブラリのversionを変更し、作成を進めていきます。pythonで作成した他のコードでライブラリ依存によるエラーの発生を防ぐため、仮想環境を構築し、その中でライブラリを管理して開発進めていきます。最初に仮想環境について説明した後、Djangoの開発環境からhello worldまでを説明していきます。

## 1. 仮想環境の作成
今回は、pythonの仮想環境ツールでプロジェクトごとに隔離されたpython環境を作成できる“`venv“`を用いて開発を進めていきます。作成した仮想環境を有効化

元記事を表示

Python標準入力受け取り方メモ

# 数値と文字列を同時に受け取る
入力される数値と文字列
“`pyton
ピカチュウのレベル 95
“`
一度str型で受け取ってからint型にする
“`python
text,level=map(str,input().split())
level=int(level)
“`
# 文字列で入力された配列を受け取る
入力
“`python
[1,2,3,4,5]
“`
まずリストで受け取って” [ ” と” ] “を外す。その後int型に変換して新しいリストに格納する。
“`python
receive=list(map(str,input().split()))
receive=receive[1:-1] # “1,2,3,4,5”
new_list=[]
for i in range(len(receive)):
new_list.append(int(receive[i]))

“`
# 数値を同時に受け取る
## 変数で受け取る
入力される値
“`python
1 2
“`
変数で受け取る
“`python:
A,B=map(int,input(

元記事を表示

2値分類のしきい値をいじって精度の調整

Scikit-LearnやKerasやその他いろいろと最後にシグモイド関数を使って分類する事は2値分類(陽性か陰性)では多いです。
ですが、2値分類において大体の場合しきい値は0.5以上だと1(一般に陽性)で0.5未満だと0(一般に陰性)とすることが初期設定では多いです。
ただ、もちろんそれに合わせて回帰しているのでその考え方自体は間違っていないのですが、時として他の値をしきい値にすることでより汎化する事もあります。
そこで以下の指標を基に実際にロジスティック回帰のしきい値を変えて汎化能力を考察してみましょう。
– 正解率
– 再現率
陽性・陰性のデータが実際に陽性・陰性と判断された割合
– 適合率
陽性・陰性と判断されたデータが実際に陽性・陰性だった割合
– f1
再現率と適合率の調和平均

# コーディング
## ライブラリのインポート
ロジスティック回帰を分かりやすくするためここではstatsmodelsを使用します。
“`Python3
from sklearn.metrics import classification_report
import statsmodels.a

元記事を表示

【Python】sys.exit(1)を使ってTrackback情報等を出力させずにプログラムを終了させる

# 概要
例外エラーの捕捉やエラーメッセージの出力を実装していると、余計な情報は出さすにプログラムを終了させたい場合や更なるエラーが出さないようにしたいケースがあります。そんな時に、`sys.exit(1)`を使うと有用だったので紹介します。

# サンプルコード

Pythonの組み込みモジュールである`sys`の`exit`関数を利用することで、プログラムを終了させることができます。
こちらを利用したコードが以下。

“`py
import sys

def divide(x, y):
if y == 0:
print(“エラー: 0で除算することはできません。”)
sys.exit(1)

return x / y

print(divide(10, 0))
# エラー: 0で除算することはできません。
“`

もし、`sys.exit(1)`がない状態だとどうなるでしょうか?

“`py
import sys

def divide(x, y):
if y == 0:
print(“エラー: 0で除算

元記事を表示

[Colab][Python3]日経平均株価の推移を可視化する方法

## 要 旨
Colabを使用してPython3において日経平均株価の推移を可視化する方法について記述します。
## 実施要領
必要なライブラリのインストール等
“`python3
!pip install japanize_matplotlib
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
%matplotlib inline
%config InlineBackend.figure_format = ‘retina’
“`
日経平均株価の取得
“`python3
from pandas_datareader import data as web
from pandas import Series, DataFrame
import datetime

nikkei_df = web.DataReader(“NIKKEI225”, “fred”, start=datetime.date(1900, 1, 1))
nikkei_df

元記事を表示

‘I’ の数 (paizaランク B 相当)

https://paiza.jp/works/mondai/query_primer/query_primer__word_count

やってることは累積和の差し引きをして、その数を比較するだけのもの。
もうすこし累積和の特徴を知っておかなくては。。。

“`py
N,K = map(int,input().split())
A = [int(input()) for _ in range(N)]
# 累積和を求める
ans = [0] + A[:]
for i in range(1,N+1):
ans[i] += ans[i-1]

for _ in range(K):
a_left,a_right,b_left,b_right = map(int,input().split())

# 累積和の足し引きで可能。ただしleftは−1引く必要がある
a = ans[a_right] – ans[a_left – 1]
b = ans[b_right] – ans[b_left – 1]

#ルール確認・相手も反則してなければ必

元記事を表示

【Python】pandasを利用してCSV列にあるJSON構造の中から、指定データを新規列へ取得する方法

# 概要
Pythonのpandasを利用して、CSVファイルの列にあるJSON構造のデータから、指定したものを取り出すコードを実装しました。

# サンプルコード
前提として、`sample_body`列の中にJSON構造のデータがあるとします。また、その中のデータは以下のようになっています。

“`json
{
“information”: {
“sample_no”: “123456789”,
# …略…
“`

CSVファイルの一番左の列に、新規に`sample_no`という列を作成し、それに紐づく`123456789`という値を入れるコードが以下です。

pandasライブラリを利用して、`DataFrame`の各行からデータを抽出し、その値を新しい列としてDataFrameに追加しています。

“`py
import pandas as pd
import json

def get_sample_no(row):
sample_body = json.loads(row[‘sample_body’])
return s

元記事を表示

Pythonの管理にRyeをおすすめしたい

Linux上でPythonをインストールするのってめっちゃ面倒くさいですよね。
Ryeを使えばPythonのインストールからバージョンの管理・変更、パッケージ管理がノンストレスでできちゃう!
# Ryeって何( 簡単に )
RyeはPython用の包括的なプロジェクトおよびパッケージ管理ツール。Pythonのインストール、プロジェクト・依存関係・仮想環境の管理を爆速で統合的に行える。
# インストール方法
Linuxにおいてのインストール方法。
以下を実行するだけ [Installation – Rye (rye-up.com)](https://rye-up.com/guide/installation/)
“`bash
curl -sSf https://rye-up.com/get | bash
“`

## 尋問される
インストール過程でいくつか質問される。

“`bash
? What should running `python` or `python3` do when you are not inside a Rye managed project? ›
❯ R

元記事を表示

便利な開発環境設定とショートカット【Win11 / VSCode / Python】

# はじめに (経緯と目的)
こんにちは、 @yomo93 です。
私の研究室では私を含む全ての所属学生がPythonによって研究・開発に取り組んでいます。例年、新規で配属される学生はPythonに慣れていないことが多いので、研究室全体の開発環境は[WinPython](https://winpython.github.io)または[Anaconda](https://www.anaconda.com/download)が推奨されてきました。
しかし、今年は方針転換があり、推奨エディタを[VSCode(Visual Studio Code)](https://code.visualstudio.com/download)にすることになりました。
そこで、研究や[お笑いWebサービス 「Tendon」](https://tendon-psi.vercel.app)開発[^1]でVSCodeを使用してきた私が**おすすめの拡張機能等を研究室のメンバー向けに紹介しよう**と思います。ただ、私も何気なく使っていたり、この記事を書くにあたって発見したものも多かったため、探り探りの部分があることも

元記事を表示

深さ優先探索と幅優先探索で辞書データの構造解析

外部のオープンデータを活用する上でWebAPIを活用することは多いと思います。特にその中ではJSONやXMLが多く、PythonでJSONやXMLを利用する際には辞書形式に直して活用します。
※なお、幅優先探索については深さ優先探索を作った後にChatGPTに教わって作りました
# 深さ優先探索の関数
第一引数は辞書データ、第二引数は文字列として初期値は何も入っていませんが、辞書に使う変数名を入れるとその後辞書をピンポイントで必要な所をコピーペーストする時に便利なので辞書に使う変数を第二引数に入れて関数を使うことをお勧めします。
“`Python3
def depth(jsn, var=””):
if isinstance(jsn, dict):
for row in jsn:
depth(jsn[row], var=var+”[\””+row+”\”]”)
elif isinstance(jsn, list) and jsn != []:
for i in range(len(jsn)):

元記事を表示

質的変数を利用した効果検証

※Qiita初心者でこれが初投稿なので温かく見守ってください

使用するのはJupyter Notebookです。
やる内容としては該当する質的変数が評価する項目にどのような影響を与えているかになります。
# 手順
## ライブラリの読み込み
必要なのは「Pandas」と「matplotlib」になります。
“`Python3
import pandas as pd
import matplotlib.pyplot as plt
“`
基本的にはExcelでデータは見れますが一応データの冒頭を出力します。
今回はCox比例ハザードモデルのライブラリであるlifelineというライブラリにある白血病のデータをCSVにしたものを読み込みます。
“`Python3
df = pd.read_csv(“leukemia.csv”)
df.head()
“`
## 質的変数と評価する変数の名前を定義
次にどの変数を用いて評価・効果検証をするかを決めます。
“`Python3
columns = [“status”, “sex”, “Rx”]
y_name = “logWBC”
“`

元記事を表示

ARC150 B – Make Divisible

公式解説に載っていなかったので。多分邪道で、公式解説の方が普通に筋がいいと思います。

# 問題
https://atcoder.jp/contests/arc150/tasks/arc150_b

## 概要
* $T$件のテストケースについて、以下の問題を解け。
* 正整数$A,B$が与えられる
* 非負整数$X,Y$で、$B+Y$が$A+X$の倍数となるようなものについて、 $X+Y$の最小値を求めよ。

## 制約
* $1 \leq T \leq 100$,
* $1 \leq A, B \leq 10^9$.

## 解説
まずは $A \geq B$の場合について。これは簡単で、$B$が$A$に等しくなるように$Y=A-B$とし、$X=0$としたときが$X+Y$が最小になる。ほとんど自明だが、$X > 0$と仮定すると $A \geq B$より $A+X > B$. このとき、$Y$を最小にするには $A+X=B+Y$として1倍の倍数にするほかないが、この時$Y=A+X-B$となり明らかに当初の$X=0$としたときの$Y=A-B$よりも大きくなってしまう。

元記事を表示

FastAPIの認証(HTTPBearer)を開発環境でのみバイパスする

こんにちは、[わいけい](https://twitter.com/yk_llm_gpt) です。

突然ですが、私は日々FastAPIを使った開発をしているのですが認証周りで時々面倒を感じることがあります。

それは、**せっかくFastAPIがOpenAPI形式の動的ドキュメント(Swagger UI)を自動生成してくれているのにも関わらず、ログインが必要なエンドポイントに関しては毎度認証トークンを取得しないと叩くことが出来ない**ということです。

セキュリティ上「まあ、それはそうだよね」という話ではあります。  
が、ローカルでコンテナ立てて開発しているときには地味に面倒なのもまた事実です。

長期的に開発を続ける想定であれば、開発チーム全体で何千回もローカル環境でのログイン&トークン取得を行うことになることが予想されます。
これは開発効率の観点からあまり好ましくなさそうだと私は思いました。

そこで今回は開発環境でのみ良い感じに認証をスキップする実装を行ってみました。


私のSNSアカウント等です。
今後もPython・LLM・Go・Web開発などのト

元記事を表示

sphinx 記述方法

前回はドキュメント作成し記述できる状態まで出来たので今回は記述方法を学んで行こうと思います。


### 参考記事

https://zenn.dev/y_mrok/books/sphinx-no-tsukaikata/viewer/chapter10


### 第一歩目
まずは目次を作成し見出しに番号を振る

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/866385/179bf0fc-eb1a-71a4-0c35-92aa53971606.png)

##### 拡張子は省略できる
“`
#index.rst
.. VBA_Documents documentation master file, created by
sphinx-quickstart on Wed Apr 17 08:57:49 2024.
You can adapt this file completely to your liking, but it should at least

元記事を表示

sphinxでドキュメント作成(WIN10)

### 使用背景
プロジェクトでメンバーに情報共有用に「sphinx」が便利そうだので使ってみました。
OSはWindows10を使用


### 参考記事と公式サイト
https://qiita.com/kinpira/items/505bccacb2fba89c0ff0

https://www.sphinx-doc.org/ja/master/index.html


### PowerShell を起動し、sphinxをInstall
“`
pip install sphinx
“`
Successfully installed と表示されればOK

### プロジェクトフォルダを作成し、プロジェクトフォルダに移動する
“`
mkdir test
cd test
“`
### プロジェクトの作成
“`
sphinx-quickstart
“`
yを入力して進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/866385/337eefb2-84bc-edce

元記事を表示

OTHERカテゴリの最新記事