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

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

ブラマンジェ曲線の面積

### ブラマンジェ曲線

ブラマンジェ曲線は[高木曲線(Wikipedia)](https://ja.wikipedia.org/wiki/%E9%AB%98%E6%9C%A8%E6%9B%B2%E7%B7%9A)とも呼ばれる中点を再帰的に分割してできるフラクタル曲線の一種とのこと。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1922159/dbcb2ceb-a438-eb61-9392-a819f1b3c72a.png)

その定義は以下のようにかなり難しい式で表されるますが、

“`math
\large T(x) = \sum_{n=0}^{\infty} \frac{s(2^nx)}{2^n} \\
ここで \large s(x)=min_{n \in Z}|x-n|
“`

Wikipediaにもあるように三角波関数を波長・高さを半分にしていき足し合わせることで近似値を得ることが出来ます。n=1,2,4,10の結果を図にすると以下のようになります。

![imag

元記事を表示

fastAPI入門

# fastAPI is 何?
– python向けのAPIサーバー構築用ライブラリです。pythonでバックエンドを組むにはDjangoなどが有名ですが、fastAPIは以下のような特徴があります
– 「**早い**」「**覚えやすい**」「**新しい**(最新python表記を使用)」 の三拍子
– [参考(fastAPIの特徴)](https://shimi-dai.com/what-fastapi-merit-demerit/)
# この記事 is 何?
– 下記の書籍の内容(1~4章)をベースにfastAPIの使い方をまとめています(必要に応じて書籍外の情報も入れています)
【対象本】「Building Data Science Applications with FastAPI」
– FastAPI本。ベースライブラリPydanticの使い方や一般的なWebサイト構築に必要な要素等を紹介。「OpenCVを使ったリアルタイム?認識」など実用的なWebアプリが多いのもうれしいところ

https://learning.oreilly.com/librar

元記事を表示

JuliaからPythonの関数を呼び出す(Docker)

## ソース

### Julia

“`julia:jsample.jl
ENV[“PYTHON”] = “/usr/local/bin/python”
import Pkg
using Pkg
Pkg.add([“PyCall”])
Pkg.build([“PyCall”])
using PyCall

if PyVector(pyimport(“sys”)[“path”])[1] != “”
pushfirst!(PyVector(pyimport(“sys”)[“path”]), “”)
end

sample = pyimport(“pysample”)
total = sample.sum(10, 20)
println(“total:”, total)
“`

### Python

“`python:pysample.py
def sum(num1, num2):
return num1 + num2
“`

### docker-compose.yml

“`
version: ‘3’
services:
julia-python:

元記事を表示

DatabricksでPythonを用いたチャート&グラフの表示

[Visualization deep dive in Python \| Databricks on AWS](https://docs.databricks.com/notebooks/visualizations/charts-and-graphs-python.html) [2020/3/4時点]の翻訳です。

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

このノートブックでは、Databricksに組み込まれている様々なチャートとグラフをカバーします。

このノートブックにおけるビジュアライゼーションで表示されるテストデータの生成にPythonを使用していますが、これらのチャートやグラフの設定方法は全てのノートブックに対して適用されます。

ノートブックはこちらからダウンロードできます。

https://github.com/taka-yayoi/public_repo/tree/main/python-chart-graph

# テーブルビュー

**テーブルビュー**はデータを参

元記事を表示

ナップサック問題の解法 for Python

## ナップサック問題
ナップサック問題をPythonで解いてみた。

問題は下記リンクから参照してください。
https://atcoder.jp/contests/abc032/tasks/abc032_d

ナップサック問題はよくある問題で以下の通り。
>$N$個の荷物があり、荷物$i$は重さ$w[i]$、価値$v[i]$とする。許容重量が$W$で、許容重量を超えず、かつ価値が最大になるような荷物の選択をする。

## DPのメリット(フィボナッチ数列)
このナップサック問題の解放のポイントは、全てのパターンを計算せず前回の計算結果を使いまわそうということだ。これは、ナップサック問題だけの話ではなく、動的計画法(DP)で共通しており前回までの結果を使いまわして計算をしている。前回の計算結果を使い回し?当たり前じゃんと思うがこれが案外難しい。フィボナッチ数列を例に見ていく。

まずフィボナッチ数列は以下のようになっている。
“`math
1, 1, 2, 3, 5, 8, 13, 21 …
“`

“`math
a_1 = a_2 = 1
“`

“`math
a_{n

元記事を表示

[Python]キーを入力するたびに音を鳴らすやつ(初投稿)

# キーを入力するたびに音が鳴るやつ作りてぇ

初投稿です。
ある日、youtubeを見てたらクールなキーボードを投稿している人がいたので自分も簡易的に作ってみました。
簡単ですので是非作ってみてください

うわさのキーボード

# 環境

OS: Win11
python 3.8.3
使用するモジュール
-pygame
-keyboard

音声出力してくれるやつとキー入力を監視してくれる便利なモジュールです。
これpipしてあげたらもうほぼ完成です。

# コード

以下のコードをメモ帳かなんかに貼って実行してみてください。

“`
#キー入力を監視するモジュール
import keyboard
#音声を出してくれる便利なモジュール
from pygame import mixer
import random

#音声の入ってるパスをsound_listに格納してください。
sound_list = []

#パス入れてあげると音声がなる関数
def sound(path):
mix

元記事を表示

一般化加法モデルを用いた回帰分析④:Neural Additive Models

# はじめに
今回は一般化加法モデル (GAM)にニューラルネットワークを適用したNeural Additive Modelを紹介しようと思います。

今回参考にしたNeural Additive Modelの原著論文はこちらです↓

https://arxiv.org/abs/2004.13912/

この記事で使用したコードは以下のGitHubリポジトリに置いてあります。ニューラルネットワークはPyTorchを用いて構築しています。

https://github.com/Komatsu-T/Neural-Additive-Models

# 一般化加法モデル (GAM)
目的変数$y$と$K$個の特徴量$x_1,\ldots,x_K$のようなデータがあるとき、GAMでは非線形な関数$f$を用いて

“`math
g(\mu)=\beta + f_1(x_1) + \cdots + f_K(x_K) \hspace{50pt}(1)
“`
のようなモデルを想定します。なお、$g$はリンク関数、$E[y]=\mu$、$E[f_i]=0$とします。GAMでは特徴量間の加法性を仮定し

元記事を表示

【紲星あかりとお喋りしたい!!】VOICEROIDと会話したかったのでPythonで2時間で会話システムを作るv1

## 0. はじめに

バイクの長距離ソロツーリングに行ってきたのですが、正直独りだと道中かなり暇で、話し相手が欲しくなりました。というわけで、紲星あかりちゃんと対話できるシステムを作りたいなと思いました。

「アプリ」ではなく、「システム」と記載しているのは、VOICEROIDのライセンスやwindows OSでしか使用できない(はず)という特性上、いわゆるAndroidなどのアプリ化は難しいかなと思ったからです。本気出せばいけるけどね。

そういうわけで、OSはWindows10、Pythonなんかの環境構築はできている前提で話を進めます。

なお、筆者はPythonに入門して1時間程度の素人なので、Pythonのお作法はあまり知らないです。ソースに違和感があったらすまん。

## 1. VOICEROIDをインストール&起動する

今回は紲星あかりちゃんにに喋ってほしいので、VOICEROID2を購入してインストールします。このページまで来ている人がVOICEROIDを知らないことはないだろうと思いつつ、一応リンクを貼っておきます。

https://www.ah-soft.co

元記事を表示

【Python】MacでSeleniumを操作する事始め

# はじめに
Excelでwebブラウザの操作を自動化する最小機能のみ実装したフレームワークの「[TinySeleniumVBA](https://github.com/uezo/TinySeleniumVBA/blob/main/README.ja.md)」があります。
これは今のところActiveXを使用しているため、Windows専用になっています。ActiveXの部分を取り除き代替部分を[VBA-tools](https://github.com/VBA-tools)ライブラリー群を使えば、Mac上のExcelで動作するかもと取り組みました。
VBA-toolsを用いてWindows上では動作するようになったのですが、残念ながらMacではエラーで動作しませんでした。

何が原因なのか分からないため、MacにSeleniumをPythonで動かしてみようと思った次第です。
簡単かと思ったら結構ハマったので記事にしてみました。

# 環境構築
* Mac Book Pro(2.3 GHz 8コアIntel Core i9) Monterey 12.2.1
* Google Chro

元記事を表示

Starlinkの衛星軌道を地図上にプロットしてみる

# はじめに

なんだか衛星軌道をプロットしてみたくなり、してみました。衛星軌道情報は公開されています。衛星軌道情報を読み込み、時刻を与えると衛星位置を計算するライブラリもあります。世界地図上に任意の緯度経度の点をプロットすることもできます。ということで、衛星軌道をプロットできます。

# PyephemでTLEを読んで軌道をプロット

## 衛星軌道情報

これはTLE(two line elements)というものが有名です。

こちらでSpace X のもので例えば、以下のものがありました。

“`
STARLINK-61
1 44249U 19029Q 22092.64473324 .00156203 00000+0 44400-2 0 9992
2 44249 52.9765 64.4520 0001512 266.1363 93.9465 15.35088908157866
“`

[こちら](https://www.celestrak.com/NORAD/elements/gp.php?GROUP=active&FORMAT

元記事を表示

化石エンジニアの野良リカレント教育~マイナスからKaggleを始める~

# 前提
数学力・統計力・技術力がほぼすべて「ゼロより低い、マイナス」の化石エンジニア・アンモナイトがエンジニアとしての生き残りを目指して~~賞金が欲しくて~~ 、Kaggleに挑戦する。
たぶん、Kaggleに挑戦する記事の中で、もっともレベルが低いと思う。
そもそも、なんでKaggleに挑戦するのかとゆーと、下記のよーなリカレント教育(大人の再教育)プランを考えているからです。

アンモナイトが考えた化石エンジニアの進化論:

ふりだし:「アンモナイト=太古の海中でたゆたってる化石エンジニア・Lv3」
 →アジャイル開始:Done!
  →社外コミュニティ参加:Done!
   →スクラム経験:Done!
    →CSM取得:Done!
     →常識(他社研修視聴):Done!
      →知識の深堀り=Kaggle:in progress
       →知識の深堀り=アプリ作成:To do
        →あがり:陸上(肺呼吸):人権を得る

あれ、こうやってフェーズ分けすると、意外と「あがり」が近いな?
そう思った方へ、下記をご参考までご確認ください。
 ・双六の怖

元記事を表示

pandasを用いて祝日を取得

# はじめに
年次作業などでシステムのプロパティファイル(祝日の定義)などを更新するとき、祝日を簡単に取得できたらいいなと思いました。pandasを用いると簡単に取得できたので紹介します。
# 環境
* python 3.7.4
* Windows10
# 取得データ
https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html

# データ取得
ダウンロード後、カラム名を変更。
“`py
import pandas as pd

url = “https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv”
df = pd.read_csv(url, encoding=”SHIFT-JIS”)
df = df.rename(
columns={
“国民の祝日・休日月日”: “national_holiday_ymd”,
“国民の祝日・休日名称”: “national_holiday_name”,
}
)
“`
# データ整形
“`py
d

元記事を表示

40代おっさんPythonでWeb APIを叩いてみる

## 本記事ついて

本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

## APIを叩く上で必要な情報

### APIに接続するための情報

・API登録のタイミングで入手
・サービスに接続するためのURLであるAPIエンドポイント
・接続に必要なID的要素、APIキーが必要

### APIに送信する情報

・基本的には各APIのドキュメントに細かく記載
HTTP:どのHTTPメソッドを使用するか(主にPOSTかGETを使用)
header:ヘッダーにはデータの種類や、APIキーなどの認証情報を記載
body:JSON形式で送受信したい情報(データ)を記載

## JSONを理解する

リクエストの送信・レスポンスにはJSONフォーマットの理解が必要

### JSONとは

JavaScript Object Notationの略
JavaScriptのオブジェクトの書き方を元にしたデータフォーマット
XMLなどと同様のテキストベースの

元記事を表示

Kaggleの臨床検査データセットを使ってみた③ ~アンサンブル学習をしてみた~

## 概要
Kaggleの血液検査データセットを使ってデータ分析をしてみた。
いろいろ試してみた結果、量が多くなったので分割します。
今回はその③
[①~モデルの性能比較をしてみた~](https://qiita.com/tuk19/items/b0df794d4d827511adf1)
[②~特徴選択をして、重要度を可視化してみた~](https://qiita.com/tuk19/items/dd759caded18d0aeeb20)

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

## モデル
今回使用したモデルは以下の6種類

1. XGBoost
2. ニューラルネットワーク
3. ランダムフォレスト
4. ロジスティック回帰
5. 決定木
6. k-近傍法

## データ確認
データは貧血に関連する血液検査の結果。
データの検査方法が分からなかったため、正常値は[2016年度国

元記事を表示

【どこよりもわかりやすい】Atcoder ABC218 C・D問題 Python3解説

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

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

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

# 目次
[1. C問題 – Shapes](#-c問題-shapes)
[2. D問題 – Rectangles](#-d問題-rectangles)

# C問題 『Shapes』

回転移動とか平行移動とか言われたら、頭がこんがらがるよね(´・ω・`)
でも落ち着いて解いたら大丈夫(`・ω・´)

### 考え方

そもそも、’#’の数が違ったら、絶対一致しないのでアウト。

$N≦200$ なので、全探索でOK。
0度、90度、180度、270度回転させたもの4つをそれぞれ平行移動させて、一致するかどうか確かめる。

平行移動は、一番左上の’#’の位置によって、どれぐらい動かせば良いかわかる。

### コード

“`python:C.py
n = int(input())

#入力を受け取るついでに、’#’の数を数えておく
S = []
cnt_S = 0

元記事を表示

Python・R・VBAの日時(日付と時刻)の操作のまとめ

# はじめに

機械学習の勉強を始めたVBAユーザです。
備忘録としてPython・R・VBAの文法を比較しながらまとめています。

今回は、日時(日付と時刻)の操作についてまとめます。

**目次**

– [日時操作](#日時操作)
– [日時を表すデータ型](#日時を表すデータ型)
– [日付](#日付)
– [時刻](#時刻)
– [日時](#日時)
– [現在の日時](#現在の日時)
– [日時型の変換](#日時型の変換)
– [日付型⇒シリアル値](#日付型シリアル値)
– [シリアル値⇒日時型](#シリアル値日時型)
– [文字列型⇒日時型](#文字列型日時型)
– [日時型⇒文字列型](#日時型文字列型)
– [日時の要素⇒日時型](#日時の要素日時型)
– [日時型⇒日時の要素](#日時型日時の要素)
– [日時型⇒その他の情報](#日時型その他の情報)
– [日時の計算](

元記事を表示

Kaggleの臨床検査データセットを使ってみた② ~特徴選択をして、重要度を可視化してみた~

## 概要
Kaggleの血液検査データセットを使ってデータ分析をしてみた。
いろいろ試してみた結果、量が多くなったので分割します。
今回はその②
[前回の記事](https://qiita.com/tuk19/items/b0df794d4d827511adf1)

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

## モデル
今回使用したモデルは以下の6種類

1. XGBoost
2. ニューラルネットワーク
3. ランダムフォレスト
4. ロジスティック回帰
5. 決定木
6. k-近傍法

## データ確認
データは貧血に関連する血液検査の結果。
データの検査方法が分からなかったため、正常値は[2016年度国立がん研究センターのデータ](https://www.ncc.go.jp/jp/ncch/division/clinical_laboratory/kensa.pdf)をお借り

元記事を表示

【AtCoder解説】PythonでABC246のA,B,C,D,E,F問題を制する!

**ABC246**の**A,B,C,D,E,F問題**を、**Python3**でなるべく丁寧に解説していきます。

ただ解けるだけの方法ではなく、次の3つのポイントを満たす解法を解説することを目指しています。

– シンプル:余計なことを考えずに済む
– 実装が楽:ミスやバグが減ってうれしい
– 時間がかからない:パフォが上がって、後の問題に残せる時間が増える

ご質問・ご指摘は**コメント**か**ツイッター**、**マシュマロ**、Discordサーバーまでお気軽にどうぞ!

**Twitter: [u2dayo](https://twitter.com/u2dayo)**
**マシュマロ: https://marshmallow-qa.com/u2dayo**
**ほしいものリスト: https://www.amazon.jp/hz/wishlist/ls/2T9IQ8IK9ID19?ref_=wl_share**
**Discordサーバー(質問や記事の感想・リクエストなどどうぞ!) : https://discord.gg/jZ8pkPRRMT**
よかったら**LGTM

元記事を表示

migemoをWindows + Pythonで楽に使う方法

# 3行で説明

– migemo、便利ですよね。
– Windows + Python用にインストールしたところミスが多かったので、scriptを書いて自動化しました。
– 下記をbatに保存して実行すればインストール完了です。

“`bash:install_python_cmigemo.bat
@powershell -NoProfile -ExecutionPolicy Unrestricted “$s=[scriptblock]::create((gc \”%~f0\”|?{$_.readcount -gt 1})-join\”`n\”);&$s” %*&goto:eof

function startLog($filename) {
$null = Start-Transcript $filename
Get-Date
}

function endLog() {
“かかった時間 : ” + ((Get-Date) – $startTime).ToString(“m’分’s’秒'”)
Stop-Transcript
}

function

元記事を表示

[学習メモ]pandasのDataFrameのメモリ削減

[reduce_mem_usageの高速化](https://tellmoogle.hatenablog.com/entry/2020/12/22/faster_reduce_mem_usage)
[reduce_mem_usageの高速化のgithub](https://github.com/TeruakiUeda/faster_reduce_mem_usage)

[reduce_mem_usageの高速化のgithub](https://github.com/TeruakiUeda/faster_reduce_mem_usage)からコピペして関数の定義をする。

“`python
import pandas as pd
import numpy as np

def reduce_mem_usage(df, verbose=True):
numerics = [‘int16’, ‘int32’, ‘int64’, ‘float16’, ‘float32’, ‘float64’]
start_mem = df.memory_usage().sum() / 10

元記事を表示

OTHERカテゴリの最新記事