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

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

Pyinstaller で実行ファイル化する場合のプログラムパスの取得

まずはコードのみ

.pyおよび.exeどちらでも親フォルダを取得する

def get_source_path():
if getattr(sys, ‘frozen’, False):
# The application is frozen
exe_path = Path(sys.executable).resolve()
main_path = exe_path.parent
dist_path = main_path.parent
src_path = dist_path.parent
else:
# The application is not frozen
# Change this bit to match where you store your data files:
py_path = Path(__file__).resolve()

元記事を表示

【Python】Selenium4の新機能まとめ

## はじめに

この記事は、Selenium4へのアップデートで新しく追加された機能について、Selenium公式サイトの[アナウンス](https://www.selenium.dev/blog/2021/announcing-selenium-4/)や[ドキュメント](https://www.selenium.dev/documentation/webdriver/)からまとめたものです。抜け漏れに気付いたら随時追加します。

なお、**Selenium WebDriver**に関する記述であり、Selenium IDEやSelenium Gridに関しては言及していません。

## 使用するツール

– [Selenium](https://www.selenium.dev/) 4.0.0
– [ChromeDriver](https://chromedriver.chromium.org/downloads) 94
– Python 3.7.4
– サンプルサイト:[HOTEL PLANISPHERE – テスト自動化練習サイト](https://hotel.testplan

元記事を表示

Athenaで基礎からしっかり入門 分析SQL(Python・Pandasコード付き)#6

今まで複雑なデータ操作・分析などはPythonでやっており、SQLは普通のアプリ開発程度のライトなものしか触って来なかったのですが、やはり分析用の長いSQLなども書けた方がやりとり等で便利・・・という印象なので、復習も兼ねて記事にしておきます。

また、SQLに加えて検算も兼ねてPythonやPandasなどを使ったコードもSQLと併記していきます(Pythonで書くとどういった記述が該当するのかの比較用として使います)。

※長くなるのでいくつかの記事に分割します。本記事は6記事目となります。

# 他のシリーズ記事

Athenaとはなんぞやという方はこちらをご確認ください:

https://qiita.com/simonritchie/items/069c75059af3ba2ba914

※過去の記事で既に触れたものは本記事では触れません。

`#1`:

用語の説明・SELECT、WHERE、ORDER BY、LIMIT、AS、DISTINCT、基本的な集計関係(COUNTやAVGなど)、Athenaのパーティション、型、CAST、JOIN、UNION(INTERSECTな

元記事を表示

欠損値処理・補完をタイタニックデータを用いながら図解して理解しよう

# はじめに
 今回は図を用いながら欠損値処理について触れていこうと思います。各章で説明した欠損値補完の方法については各章の最後に以下のようにコードを付属させています。

“`python:sample.py
この枠内にコードとその動きを記述していきます
“`

 今回利用するデータはタイタニックデータ(https://www.kaggle.com/c/titanic) です。ここから予測がつく方もいらっしゃると思いますが、今回はデータ分析コンペ向けの欠損値処理になります。
 ここで、注意です。**初学者の方はコードを使う必要はあまりない**と思われます。理由は、わからないものにわからないものを付属されてもなおのことわからなくなるからです。欠損値処理とは何かを知っている、どのような方法があるのかを知っている。最初はその程度で十分です。今回無理やりコードまで手を出さなくても良いと思います。
 てな感じで初めて行きます!!

# 欠損値って
 まずは軽く欠損値について触れていきたいと思います。欠損値処理とはつまり「欠損値」を処理することです。まあ、文字通りですね笑
 そこで必要なのは

元記事を表示

python loggingメモ

##動作環境
macbook pro
python version 3.8.3

##loggerの構成
・ロガー→ログのレコードを生成する役割がある
・ハンドラ→ログレコードを出力する
・フォーマッタ→ログレコードを整形する
・フィルタ→ログレコードを処理するか否かの条件を定義する

##logger使い方
“`python:log_test1
import logging
import sys

#ロガーを生成
logger = logging.getLogger(__name__)

#ハンドラを生成
sh = logging.StreamHandler(sys.stdout)
# 出力レベルを設定
sh.setLevel(logging.WARNING)

#フォーマッタを定義
fmt = logging.Formatter(“%(asctime)s – %(name)s – %(levelname)s – %(message)s”, “%Y-%m-%dT%H:%M:%S”)
# フォーマッタをハンドラに紐づける
sh.setFormatter(fmt)

#ハンドラをロガー

元記事を表示

統計やってると時々でてくるチェビシェフの不等式について、順を追って説明する

統計の学習やら統計検定の対策やらをしていると、確率の部分で
「チェビシェフの不等式」
という急に複雑(に見える)数式が出てきて、毎回「見てるふりして飛ばしている」方も多いのではないでしょうか。
(私のことですよ、はい)

そこで、自分のアウトプットの意味合いも含めて順に解説していきます。

がっつりとした統計の基礎に関しては割愛しながら説明することだけ先にご了承ください。

# (ちょっとした前置き)正規分布
統計においてはどうしても避けて通れない正規分布について先に扱います。

代表的な式と、標準正規分布を簡単にプロットすると以下。
$$f(x) = \frac{1}{\sqrt{2\piσ^2}} \exp(- \frac{(x – μ)^2}{2σ^2})$$

“`
import numpy as np
import seaborn as sns

rng = np.random.default_rng()
x = rng.normal(loc=0, scale=1, size=500)
sns.displot(x, kind=’kde’)
“`
![スクリー

元記事を表示

こわくないbit全探索【AtCoder・アルゴリズム解説】

**競技プログラミング(AtCoder)**初心者が、最初に突き当たる壁になることが多いアルゴリズムのひとつに**『bit全探索』**があります。

この記事では、その**『bit全探索』**についてできる限り丁寧に解説をしていきます。

記事は以下の構成になっています。

**はじめに : bit全探索は何をするアルゴリズムなのか、どんな問題を解けるアルゴリズムなのか説明します。
基本編1 : bit全探索で解ける簡単な例題(部分和問題)を題材に、順を追ってbit全探索の考え方、Pythonによる楽な実装を解説します。
基本編2 : 基本編1とは違う一般的な実装($2$ 進法を利用する方法)で、部分和問題のコードの実装を解説します。(Python、C++)
実践編 : AtCoderで過去に出題された、bit全探索で解ける問題 $5$ 題で演習を行います。各問題には簡単なヒントと、Python・C++のACコードを載せてあります。
応用編 : $3$ つ以上の選択肢がある問題の実装方法を解説します。(再帰関数による実装)**

なお、基本編1までのコードははPythonで書いてありま

元記事を表示

echo hello > /dev/twitterをやりたい

Dockerなど分けた環境でやると吉。

# 目標

次のようなものを作ってみたい

“`bash
$ echo hello > /dev/twitter #’hello’とTwitterに投稿される
“`

# 方針・コード
– テキストをツイート送信プログラム(`tweet.py`)に名前付きパイプ(`/dev/twitter`)経由で送る。
→ テキストが/dev/twitterにリダイレクトされるたびにツイート送信

## 1. 名前付きパイプ作成

“`bash
$ mkfifo /dev/twitter
“`

## 2. ツイート送信プログラム作成
今回は処理を簡便にするために、IFTTTでWebHookを受けたらTwitterに投稿するアプレットを作成して使用した。もちろん`tweepy`や`requests-oauthlib`などでも。

“`python:tweet.py
import requests

url = “https://maker.ifttt.com/trigger/iftttwebhook/with/key/SUPERSECRETT

元記事を表示

Vue.js(Vuetify) + Flask で超解像を試せるアプリを作った(Herokuにデプロイまで)

# はじめに
最近はひたすら[超解像コンペ](https://solafune.com/competitions/3c7a473f-61f4-472f-a812-92eb07cc4541?menu=about&tab=overview)に取り組んでいますが、まだ超解像という分野がマイナーな印象なので、知らない方にもどういうものか試せるようにと思い、フロント側は**Vue.js**、バックエンドは**Python(Flask)**でWebアプリケーション化して**Heroku**にデプロイするまでの記録です。

Vue.jsとFlaskの連携方法に関しては、先人の素晴らしい記事がありますが、個人的につまる部分もあったので同じように連携させたい方の参考になれば幸いです。

また自分がメインで使用している言語は`Python`で、プログラミングを勉強し始めてもうすぐ4ヶ月の人間です。HTML,CSSは軽くかじった程度で、Javascriptの知識はほぼゼロ状態からのスタートです。デザインセンスは壊滅的だし、ひたすらググりながら「理解」よりも「動く」を重視して作成したので、間違い等が散見される

元記事を表示

pyenv globalが出来ない時の対処法

## エラー内容
`pyenv global 3.6.X`をしたのにも関わらず、`pyenv versions`では変化が見られなかった。

## 原因
ホームディレクトリで`pyenv local 3.X.X`などをしてしまうのが問題。
`pyenv local`コマンドで生成された`~/.python-version`ファイルが悪さをして上書きループに入ってしまっている。

## 対処法
・下記コマンドを実行

“`
chmod +x ~/.python-version
rm -rf ~/.python-version
“`

 ・`ls -la`でファイルがないのを確認できたらOK

元記事を表示

StyleGAN3のアフィン変換

いつの間にかStyleGAN3が発表されていたので、少しだけ触ってみました。
自分は初代のStyleGANは少しだけ触ったことがありましたが、StyleGAN2やStyleGAN2-adaに関しては触ったことがありませんので微妙な変化は追えていないかもしれません。

https://github.com/NVlabs/stylegan3

論文:https://arxiv.org/abs/2106.12423

#初代StyleGANとの違い(印象)
・実装はtensorflowではなくpytorchである。
・torch_extensionsの追加プラグインをビルドするのにninjaを使っている。
自分の初期環境ではこれがこけるので動作させるまでに手こずった。
・モデルの重みがGoogleDriveではなくnvidiaの公式のサイトに公開されている。
File Browser=>action=>Downloadで直接ローカルに保存もできる(Firefoxだと何故かダメ)。GoogleDriveの接続制限で時間をおいてダウンロードできるまで待つという事はなくなる。
https://ng

元記事を表示

vaccine_gene&breed_gene 対策

今だ流れ着いてくる
vaccine_gene
breed_gene
ですが、mayaScannerをインストールしていると感染前に止めてくれますが
インストールしてなかったり、loadしてなかったりすると感染してしまう。

うっかり感染しちゃったうっかりさんの為に対応策を考える。

処理を確認

感染 感染 と言ってるけれども、実際何がどのように処理されているのかを確認してみる。

**1: 感染してるファイルを開く**
image.png

**2: vaccine_gene のスクリプトが実行される**
image.png【AWS】CloudWatchのメトリックデータをCSVにまとめたい【Python】

EC2のメトリックとかから障害予測とかできないかな~と思ったので、データを集めたくなりました。
ので、今回はCloudWatchのメトリックからデータを持ってきて、CSVにまとめてみたいと思います。

# 環境
python: 3.7.4

# 内容
今回実装するのは下記の動作をするものです。
1. CloudWatchから特定のデータを取得
2. 取得したデータから必要なものだけまとめる
3. まとめたデータをCSVにして出力

こんな感じです。ではやっていきましょう!

# 環境の準備
データの取得はpythonを用いて行おうと思います。
まずは`awscli`と`boto3`のモジュールを入れておきましょう。

“`terminal
$ pip install awscli
$ pip install boto3
“`

awscliの環境設定をしていない方はそちらも行いましょう。
それぞれのAccess KeyはIAMから発行できます。
利用するIAMユーザーの認証情報から、アクセスキーを発行して、それを使います。
今回のプログラムを動作させるなら、CloudWatchへの

元記事を表示

MNISTを用いて『自分の書いた数字』を識別させよう

#0.初めに
修士になって深層学習を扱い始めた。MNISTでの数字識別を例にしている記事が多くあったが、
**『自分が書いた数字を実際に認識させる』**とこまでやっている記事が少なかった。
自分なりに調べて、自分の書いた数字の識別まで辿り着いた。
したがって、備忘録として示しておきます。

#1.流れ
数字画像作成(通常、RGBの3次元画像として保存される)

画像を加工

作成したモデルに入力

**画像の加工**が本稿のポイントです。具体的には…
①画像を(縦×横×RGB3次元)→(28×28×RGB3次元に変換)
②(28×28×RGB3次元)→(28×28)のグレースケール画像に変換し、保存

28×28にするのは、MNISTのデータセットと合わせるためです。

#2.手書き文字作成(パワポ)
![スクリーンショット 2021-10-21 155605.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557479/a3523c9e-731a-5f13-83fc-8da38104802e.p

元記事を表示

Pythonを使ってDataFrameをAmazon S3に直接アップロードする

# はじめに

[Pythonを使ってAmazon S3にファイルをアップロードする](https://qiita.com/honda28/items/bf71c2b39e8ab109fda3)では、Python 用 AWS SDK である Boto3 を用いて Amazon S3 へのファイルアップロードを行った。この際、保存されているファイルのパスを指定していたが、ローカルにファイルを残したくない場合や準リアルタイムに結果を送りたい場合、ファイルを一度保存してそのパスを指定するのは望ましくない。本記事では、Python でよく用いられる DataFrame 形式のデータを CSV ファイルとして保存することなく一時ファイルのままで Amazon S3 へアップロードすることを試みた。[S3.Client.upload_fileobj](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#S3.Client.upload_fileobj) を参考にした。

# S3 へフ

元記事を表示

Raspiに接続したUSBカメラの画像をFlaskで飛ばしてWin10PCのOpenCVで再生する

#Raspi4のOS作成方法
最新の方法は、ラズパイ公式サイトの「OSインストールページ」の「Raspberry Pi Imager」を使う方法です。

参考HP
https://taku-info.com/raspi-osreinstall/
https://www.indoorcorgielec.com/resources/raspberry-pi/raspberry-pi-os%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/

#pythonのバージョンを3.7.3に変える
参考HP
https://www.ingenious.jp/articles/howto/raspberry-pi-howto/python-3-change/

インストール直後の初期設定では、デフォルトで使用されるPythonは、Python2系になっています。
デフォルトで使用するPythonをPython3系に変更する方法について記載されてます。

#Raspi側のプログラム

参考HP
https://github.c

元記事を表示

Vtuberの声の分類モデルを作ってみた!!

#初めに
最近少し暇になったので、研究で使っている知識で面白いことできないかな~と思い、やってみた感じです。ちなみにモデルはCNNを使っています。

#前処理
本当は色々なvtuberの声を集めるべきでしたが、それは大変そうだったので今回は**兎田ぺこら**と**雪花ラミィ**のみの音源を使いました。
手順は以下の通りです。
➀youtubeに落ちている切り抜き動画をdl
②audacityを使って声が入っていない、もしくは他の人の声が入っている区間を取り除く(~~正直ここはめんどくさい~~)
③音源を2 sごとに切り抜く
④**切り抜いた音声をメル周波数スペクトログラムに変換**
重要なのは④です。声の分類をするためには機械学習の入力に音に関する何らかの特徴量を与える必要があります。有名な特徴量としてはMFCCなどがありますが、今回はそういった類のものでは無く、比較的rawなデータであるスペクトルグラムを扱いました。スペクトルグラムは周波数分布の時間変化を表したものであり、**これには話者の、話者らしさが反映されていると考えています。(ぺこらならツンとした感じの声色?とか)**
今回

元記事を表示

pip-toolsでバージョン管理する方法まとめ & Pipenvとの比較

pip/requirements.txtを直接操作するではなくさらに上位のツールを使いたかった。ライブラリの先の依存を陽に書かなくてもよくしたい & バージョンの固定をやりやすくしたい。

# 最終的に決まった手順
pip-toolsを使う。Pipenvは後述の通り挫折した。

“`
$ sudo apt install -y curl python3-venv python3-distutils
$ python3 -m venv –without-pip venv
$ source venv/bin/activate
(venv) $ curl -kL https://bootstrap.pypa.io/get-pip.py | python
(venv) $ pip install pip-tools
(venv) $ vi requirements.in && pip-compile # ライブラリを追加、バージョン変更する場合のみ
(venv) $ pip-sync
“`

`–without-pip`で始める理由は、pipがグローバルに入っていない環境への対応。pi

元記事を表示

機械学習モデルの推論結果を返す Web API を FastAPI で作成

# はじめに

機械学習で作成したモデルを実用化するには、システムが必要になる。もっともシンプルなシステム実装としては、学習済みモデルが API リクエストに対して推論結果をレスポンスで返す簡単な Web API が考えられる。具体的には、推論対象の CSV データをもたせた POST リクエストに対して推論結果を返すような Web API を想定している。機械学習モデルは大半が Python で構築されているため、API も Python ベースで作成することが望ましいと考え、FastAPI を用いた Web API を段階を踏んで作成していく。
[シンプルな Web API を FastAPI で作成](https://qiita.com/honda28/items/4c6a4b7235ce43c7131e)ではまず FastAPI を使った簡単な Web API を作成した。続いて [FastAPI で作成した Web API にて、リクエストボディのデータを DataFrame に直接入れる](https://qiita.com/honda28/items/2aa04e1b4f

元記事を表示

violinプロットで可視化したデータの読み方

# 記事を書いたきっかけ
データ分析のインターン業務中に、violinプロットを用いて可視化したデータを説明する機会がありました。

その時に、「あれ、ここって平均値だっけ?中央値だっけ?」とわからなくなったのが怖くなり、調べたのがきっかけです。

violinプロットに関しては、日本語での検索結果は実装方法ばかりで具体的にどう読むのかを書いた記事が現状少ないように思えました。

この辺英語で調べたら一発だったので、翻訳も交えて自分のためにまとめようと思います。

![スクリーンショット 2021-10-20 10.54.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/845778/3774822d-f655-8c24-7b27-ef31b4e60f7a.png)

# 概要
データの可視化で非常にお世話になるヴァイオリンプロットについて詳しくなります。

# 実装
ヴァイオリンプロット??ってなっている人のために、秒で動くipynbファイルを用意しました。
よかったら飛んで見てみてください。

h

元記事を表示

OTHERカテゴリの最新記事