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

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

PythonとQaurtoでデータ分析レポートを速攻作成

## はじめに

– Quartoを使ってみたらPythonでのデータ分析レポート作成がとても便利だったので紹介します。
– 想定読者: Pythonでデータ分析をしている方、これから始めようとしている方。(Pythonおよびマークダウンを書いたことがあると想定します)
– なおR Markdown+RStudioと非常に似ていますが、R/RStudioをインストールしなくても使える点が便利です。
## Quartoとは

https://quarto.org/

### [公式サイト](https://quarto.org/)解説(抜粋・翻訳)

– QuartoはPandocを使って科学技術ドキュメントを生成するオープンソースのシステムです
– MarkdownまたはJupyter notebookからドキュメントを生成できます
– Python, R, Juliaに対応
– HTML, PDF, MS Word, ePubで出力可能

### Jupyterlabによるレポート作成(HTML出力)よりも優れている点

– ソースコードが短くて済む
– 今回サンプルをJupyt

元記事を表示

国内株銘柄一覧の取得

# はじめに

[以前書いた記事](./58a912a9b75313cffa46)で日経平均、ダウなどの構成銘柄一覧を取得する方法を紹介した。
日経平均だと225銘柄なのでもう少し幅を広げたい場合にTOPIX、東証プライム、スタンダード、グロースなど分類できる。

ここの記事([Pythonで株価の東証の銘柄コード一覧を取得して、東証1部、2部、TOPIXに整理](https://qiita.com/kanagii_codes/items/d33f3b1532802413e619)、以下元ネタ)で大概の事が書いてあるのでわざわざ書く必要も無いのだが少し情報を追加して紹介したい。

# 実装

## 東証市場再編成

2022年4月1日より東京証券取引所が市場再編成を行った([市場区分見直しの概要 \| 日本取引所グループ](https://www.jpx.co.jp/equities/market-restructure/market-segments/index.html))。
そしてJPXから提供されるデータもようやく更新されたようだ。

そのため元ネタにある方法は手直しが必要とな

元記事を表示

【スクレイピング】SUUMOのサイトから物件情報を取得する~スクレイピング実装~

## はじめに
※個人使用であること、suumoの利用規約によって商用利用が禁止されているので悪用しないことを必ず書く
tkinterは長くなるから別の記事にするかも

スクレイピングに加えてTkinterも実装しましたが、コード全体の記述量が多いため二部構成にしたいと思います。本記事ではスクレイピングの実装についてまとめています。
Tkinterのコードについては以下の記事をご参照ください。

https://qiita.com/kaich0prog17/private/e80d5c672206939a0a34

なお、環境やライブラリのインストールについては前回の記事に記載しているため本記事では省略させていただきます。

## スクレイピング部分の実装
### GUIに入力した情報を取得する
前回のTkinter実装と同様に、for文による繰り返し処理を実現できなかったためコードが不必要に長くなっています。ご容赦ください。
まず、def でtkinterのイベントに連動して物件情報を取得する関数を定義します。
tkinterでURLを貼り付ける工程がありましたが、それを
・suu

元記事を表示

【スクレイピング】SUUMOのサイトから物件情報を取得する~Tkinterの実装~

## はじめに
※個人使用であること、suumoの利用規約によって商用利用が禁止されているので悪用しないことを必ず書く
tkinterは長くなるから別の記事にするかも

スクレイピングに加えてTkinterも実装しましたが、コード全体の記述量が多いため二部構成にしたいと思います。本記事ではTkinterの実装についてまとめています。
スクレイピングの部分は以下の記事をご参照ください。

https://qiita.com/kaich0prog17/private/664f6f39a05870af1cd7

## 内容

## 環境
・OS:Windows10
・Python3.10
・VSCode
・chrome

## 使用するライブラリ
“`
pip install selenium
“`
 スクレイピングを行うためのライブラリはいくつかありますが、今回はSeleniumとchromedriverを利用します。chromedriverの導入は他の方の記事を参考にしていただけると幸いです。
 また、今回は取得した情報をDiscordに出力する形をとったので
“`
pip i

元記事を表示

#本田とじゃんけん を(簡易的に)作成する方法

## 目的
**本田とじゃんけん**を(簡易的に)作成することです.

## 本田とじゃんけんとは
> #本田とじゃんけんとは、ペプシのキャンペーンで行われた、本田圭佑とじゃんけんをする企画である。
>
> 引用先:#本田とじゃんけんとは (ホンダトジャンケンとは) [単語記事] – ニコニコ大百科
> https://dic.nicovideo.jp/a/%23%E6%9C%AC%E7%94%B0%E3%81%A8%E3%81%98%E3%82%83%E3%82%93%E3%81%91%E3%82%93

## 今回は
Botアカウント名とタグ上にてじゃんけんの手を記載すればBotが**~~必ず勝つ手を~~**返信してくれるプロダクトを作成します!

## 作成方法
1. TwitterAPI

元記事を表示

Streamlit、Python、GridDBを使ってインタラクティブなダッシュボードを作成する

## プロジェクトの概要

### はじめに

このプロジェクトでは、GridDBとStreamlitを使って、インタラクティブなデータサイエンスダッシュボードを作成する方法を紹介します。

GridDBに取り込まれた[過去のプロジェクトの][1]データを基に、[Streamlit][2]を使ってニューヨーク市の犯罪の苦情を視覚化します。Streamlitでは、入力や出力に使える様々なウィジェットを使って、どんな種類のダッシュボードでも素早く簡単に開発することができます。このプロジェクトでは、入力ウィジェットを使ってGridDBのTQLクエリ文字列を構築し、チャート出力ウィジェットを使って返されたデータを表示します。

[][3]

### 要件

今回のプロ

元記事を表示

Discordの新機能「モーダルウィンドウ」をPythonから使ってみよう

# なんか面白そうな機能キタ――(゚∀゚)――!!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1107984/1e5ae8a8-583f-2fdc-f8fc-6b2b5b70f45b.png)
引用: [Discord Developer Portal](https://discord.com/developers/docs/interactions/message-components#text-inputs)

Qiita2回目の初心者です。
ということで、テキスト入力をさせるモーダルウィンドウを表示させることができるようになりました。
おもろいなぁって思ったので、メモ程度にQiita書かせていただきます。
また、環境はnextcordですが、Discord.pyとかpycordとかでも、**バージョン2.0**以上なら使えるので、`import`の名前とかをAPIリファレンス又は勘をもとにリファクタリングしてください。

# 百聞は一見に如かず
まずは、コードを見てみましょう。

元記事を表示

python-controlで線形システムの固有振動数を求める

# 概要
python-controlで線形システムの固有振動数などの振動特性を求めるには `control.matlab.damp` が便利

# 振動特性を算出する `control.matlab.damp`
線形システムの固有振動数などの振動特性は `control.matlab.damp` で簡単に算出できる。

https://python-control.readthedocs.io/en/latest/generated/control.matlab.damp.html

“`python
wn, damping, poles = control.matlab.damp(sys, doprint=True)
“`

– 引数
– `sys` : 線形システムオブジェクト
– `doprint` : 結果の標準出力の有無
– 戻り値
– `wn` : 固有角振動数
– `damping` : 減衰比
– `poles` : システムの極

# `control.matlab.damp` の使用例
バネマスダンパー系での `control.matla

元記事を表示

PythonでCLIアプリケーションを作る

# はじめに

Pythonを用いて,CLIアプリケーション作成を支援するパッケージを作ったので,その記録を残します.

“`bash
❯❯❯ python3 -V
Python 3.9.7
“`

必要なパッケージをインストールしておきます.

“`bash
❯❯❯ pip3 install wheel twine
“`

# PyBundleCli

今回,私が作ったパッケージに“`PyBundleCli“`と名前をつけました.

“`bash
❯❯❯ pip3 install PyBundleCli
“`

# 手順1 init

インストールができたら,初期設定をします.

“`bash
❯❯❯ pybundle init
“`

これは,“`~/.pybundle/config.json“`作ります.

“`bash
❯❯❯ pybundle config set git_account ‘gitのアカウント’
“`

この情報は後で作成するファイルに使用されます.

また,“`setup.py“`に記載する情報を

“`bash
❯❯❯ g

元記事を表示

[python]関数

# 関数の定義と呼び出し方

関数を定義するためには最初の行にdef文
def文につづくコードブロックが関数の内容
定義しただけでは実行されない、定義した関数を実行する必要がある
“`
def 関数名():
コードブロック
“`
関数を呼び出す際に()内にパラメータを定義でき、変数を設定できる。
これを利用して関数に引数を渡すことができる

“`Python
def hoge(num):
print((num))
hoge(2)
“`

# return文について
関数呼び出しによって得られる値を指定できる
これによって処理によって出力が変わる場合などを制御できる

# None値について
値がないことを示す
returnで値を指定しない場合などNoneが返る

元記事を表示

Fakerでダミーの漢字氏名・カナ氏名を生成する

Pythonでテスト用データなどのダミーデータを作りたい場合は[Faker](https://pypi.org/project/Faker)を利用することができる。その際のノウハウを記載する。

# 氏名の取得
ダミーの氏名を生成する場合に、漢字名とカナ名をそれぞれ取得すると、それぞれでランダムに取得されてしまう。

“` py
from faker import Factory
fake = Factory.create(‘ja_JP’)

print(fake.last_name())
# “田中”
print(fake.last_kana_name())
# “サトウ”
“`

以下のように`pair`を取得すると、`(漢字表記, カナ表記, ローマ字表記)`のタプルが返ってくるので、こちらを利用したほうがいい。
“` py
print(fake.last_name_pair())
# (“田中”, “タナカ”, “tanaka”)
print(fake.first_name_pair())
# (“太郎”, “タロウ”, “tarou”)
“`

# 名前のデータセット

元記事を表示

PythorchのConvTranspose2dのパラメータ設定方法

# 1. はじめに

GANの生成の際などに用いるPytorchのConvTranspose2dの使い方について、
色々と調べたりしましたので、簡単にまとめておこうと思います。

# 2. ConvTranspose2Dのパラメータ

Conv2dの逆変換を行うConvTranspose2Dは、その変換前のConv2Dの際のパラメータと同じものを用いるようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2048607/e1e16629-6275-3261-503b-941268232b79.png)

Conv2d
![no_padding_no_strides.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2048607/00682a20-29c3-d63b-eade-166fb732487e.gif)

ConvTranspose2d
![no_padding_no_strides_trans

元記事を表示

高度にヒューマンライクなbotを作る

# SeleniumはBOTだとバレている

Seleniumやpupeteer始めとしたブラウザの自動操縦ライブラリはたくさんありますが、
大手CDNを利用しているサイトやスクレイピング対策を頑張っているサイトだと簡単に
アクセスが拒否されてしまいます。

## Google Chromeでは

chromeのDevTools上で

“`Javascript
navigator.webdriver;
“`

を実行してみてください。

`webdriver`で実行しているわけではないので`false` が返ってきます。

## Seleniumでは

今度はSeleniumで同じ値を見てみましょう。以下を実行すると

“`Python
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(‘https://www.google.com/’)
is_driver = driver.execute_script(“return navigator.webdriver;”)
print

元記事を表示

ジェネレータ式に入門する【Python】

# やりたいこと
– ジェネレータ式について入門する。

# 復習
– イテレータ、イテラブルオブジェクト、ジェネレータ、ジェネレータ関数、ジェネレータイテレータについては[こちら](https://qiita.com/yyyyy__78/items/ba938c555f78a984c364)の記事にまとめました。手前味噌で恐縮ですが、よければ参照ください。

# ジェネレータ式とは
– ジェネレータ関数の定義について、リスト内包表記を使って簡単に記述したもの。

ジェネレータ式を使わずに、defでジェネレータ関数を定義し、ジェネレータイテレータを取得する場合、以下のようになります。
“`py
def sample_generator_before():
for x in range(3):
yield x

g = sample_generator_before()
“`

ジェネレータ式を使って、ジェネレータイテレータを取得する場合、以下のようになります。
“`py
# ジェネレータイテレータ = ( 式 for 取り出す要素 in イテラブルオブジェ

元記事を表示

【機械学習】ADFIを使って30分で異物検出AIを作成する手順【異物検査】

先日、異物検査システム構築案件でADFIを使って異物検出AIを作成した時の手順メモ。

![zu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/2a01e389-05ca-cb95-9efc-8dfd3a403300.png)

# 概要
## 異物混入対策

食品製造現場においては異物混入対策は非常に重要視されています。
もちろん、食品工場や物流の現場では異物混入を防ぐ様々な対策が導入されていますが、最終的には異物検査(商品に異物が混入していないかのチェック)が必要です。
異物検査を人間が目視で行うのは大変なので、異物検査システムのニーズは大きいようです。

## 異物検査AI

近年、ディープラーニングなどのAI技術が進展したため、高精度の異物検出AIが作成できるようになってきました。
今回は、無料で利用できる異常検知AIプラットフォームの[ADFI](https://adfi.jp/ja/)を使って異物検出AIを作成してみたので、その時の手順を掲載します。
[AD

元記事を表示

Macのpyenv環境でTkinterが使えない時の対処法

## 開発環境を一新したら、プロジェクトが動かなくなった件
以前、以下の記事を投稿しました。

https://qiita.com/lberc_yuki_ono/items/075e08ae32124e1e3aa7

投稿後、MacBookを買い替えたのですが、上記のじゃんけんゲームを動かそうとすると以下のエラーが出る様になりました。

“`python
_tkinter.TclError: couldn’t recognize data in image file “src/file/janken.png”
“`

また、別プロジェクトで作成しようとしてもLabelなどが表示がされない症状も出ました。

原因がわからず、まず上記の頃の環境との違いをチェックしていました。

### 環境の違い 

| 項目 | 旧環境 | 新環境 |
| :-: | :-: | :-: |
| PC | MacBook Pro 2012 | MacBook Pro 2017 |
| OS | catalina | monterey |
| Python | 3.10 | 3.10(py

元記事を表示

rich な cat コマンドを1年越しにアップデートした話

この記事は、以前書いた「 [richなcatコマンドを作った話](https://qiita.com/yamamoto-yuta/items/5e67a9150f68ae0850ae) 」のその後について記した記事になります。

https://qiita.com/yamamoto-yuta/items/5e67a9150f68ae0850ae

以前開発したrichcatを1年ぶりにアップデートしました。この記事では、1年ぶりのアップデートを行った際にどんな問題が発生して、その解決の為にどんなことをしたのか等について記します。

※ 以前の記事から1年経ってないのは「開発 –[1年経過]–> アプデ –> 以前の記事を投稿 –> この記事を投稿」という時系列だからです。

## まず「richcat」って何?

コマンドシンタックスハイライトをしてくれたり、Markdown や Jupyter Notebook をプレビューしてくれたりと、出力が”rich”な Python 製 cat コマンドです。pip からインストールして使えます。

“`
$ pip install

元記事を表示

Jupyter notebook 横幅 狭い

ノートブックで以下を実行する
“`python
from IPython.display import display, HTML
display(HTML(“

“))
“`

元記事を表示

SchrödingerのSpectral Bias(存在する)

# 始めに
Schrödingerの猫[[1](https://en.wikipedia.org/wiki/Schr%C3%B6dinger%27s_cat)]とは,諸々の実験装置と一緒に箱の中に閉じ込められた可哀そうな猫のことで,次に箱を開けてみるまで,その猫は「生きている」と「死んでいる」の重ね合わせの状態にあります.

さて,Spectral Bias[[2](https://arxiv.org/abs/1806.08734)]は深層学習分野において大きな問題ですが,この子もブラックボックスという箱に閉じ込められた存在で,箱を開けてみるまでは「存在する」と「存在しない」が重ね合わせてあります.恐れずに箱を開けましょう.つまり,本稿ではSpectral Biasを観測してみます(コードは[GitHub](https://github.com/ShotaDeguchi/spectral_bias)に公開しています).

# Spectral Bias
深層学習におけるSpectral Biasとは,低周波成分の学習が,高周波数の成分より優先される現象を指します.任意の関数が表現可能で

元記事を表示

イテレータとジェネレータに入門する(forとの関係も)【Python】

# やりたいこと
イテレータとジェネレータに入門する。
forとイテレータ・ジェネレータの関係を知る。

# イテレータ関連
## シーケンス型
– 複数の値を順番に並べたものをひとかたまりとして格納するための型。
– 整数のインデックスを指定して、要素にアクセスできる。
– シーケンス型な型
– str、list、tuple、range、bytes、bytearray
– シーケンス型であれば必ずイテラブルオブジェクト(後述)であるが、逆は成り立たない。
– どの型がシーケンスではないがイテラブルオブジェクトである型など、[こちら](https://gammasoft.jp/blog/python-built-in-types/)のサイトがわかりやすかったです。

## 反復可能オブジェクト(イテラブルオブジェクト)
– 要素をひとつずつ返すことができるオブジェクト。
– イテレータ(後述)を返す関数`__iter__()`を持つ。
– 以下のようなオブジェクトがイテラブルオブジェクトである。
– シーケンス型(`str`、`list`、`tuple`、`

元記事を表示

OTHERカテゴリの最新記事