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

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

機械学習入門 vol.7 回帰 – ランダムフォレストとパラメータチューニング

本コンテンツは機械学習入門講座を各所でやっている内容の一部を、受講者の皆様の予習・復習のために公開しているものです。対象読者は、Pythonをやったことがほとんどない方やつまづいてしまっている方でも概ね実行できるようになるレベルで書いています。解説は講座でそれなりに詳しくしているため、コードにコメントする以上の説明はあまり記述していません。

各コードはJupyterシリーズやiPythonで記述しながら実行できるように記述しています。

AI/DX/機械学習/Pythonのアドバイザリー、社内研修、セミナー等承っております。
webサイトからお問い合わせください。
[BeeComb Grid株式会社](https://beecomb-grid.co.jp/)

# 機械学習入門シリーズ記事

1. [機械学習入門 vol.1 Pythonの基礎1 記述とデータ型](https://qiita.com/mychaelstyle/items/500f67b01fda79c215d0) -> 講座第3回に相当
1. [機械学習入門 vol.2 Pythonの基礎2 条件分岐と処理](htt

元記事を表示

Google Colabで数式書いてからQiitaに投稿するのめんどくさい話

私は、Google ColabやJupyter Notebook等でQiitaに投稿する記事の下書きを書いておくタイプ。

コードと説明文だけの記事であれば比較的簡単に転載できるのだけど、数式が大量にある場合、Google Colabで採用されているLaTeXからQiitaで使えるMathJaxの記法に一部変更する必要があったり。

その転載時に使えそうな超簡単なコードをPythonでパパっと書いてみる、という記事。

LaTeXやMathJaxの文法についてはQiitaをはじめとする、様々なところで情報共有がされているので、それについてはざっくり省略。

早速コードを。

“`
import re
import tkinter as tk

root = tk.Tk()
root.geometry(“700×300″)

entry = tk.Text(bg=”#fff”, fg=”#000″, height=18, width=90)

entry.place(x=90, y=70)
entry.pack()

button = tk.Button(text=”変換”)
but

元記事を表示

Python を用いて気象庁の天気予報APIから東京の天気を受け取とる。

#気象庁のAPI
2021年2月24日に気象庁が公式Twitterアカウントから気象庁のホームページをリニューアルしたことを発表した。リニューアルによって、気象庁公式の天気予報や概況のデータをJSON形式で取得できるようになった。

#API取得方法

“`
https://www.jma.go.jp/bosai/forecast/data/forecast/(pathCode).json
“`

上記のURLは気象庁が出しているJSON形式の天気概況である。
(pathCode)の所に自分が知りたいエリアのコードを入力する。
東京のエリアコードは”130000″なので上記のURLに当てはめると下記の通りになる。

“`
https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
“`

[エリアのコード(pathCode)一覧](http://www.jma.go.jp/bosai/common/const/area.json)

#API取得環境
Windows10
Python3.9.9
Visual St

元記事を表示

[py2rb] __slots__

# はじめに
移植やってます
# __slots__ (Python)
“`python
class cvstr(str):
__slots__ = (‘accession’, ‘unit_accession’)
“`
`Python`はインスタンス変数を自由に追加できます。
それを制限する機能が`__slots__`
# @ (Ruby)
“`ruby
class Cvstr < String @accession @unit_accession end ``` `Ruby`は平常運転で。 # メモ + Python の __slots__ を学習した + 道のりは遠そう

元記事を表示

機械学習入門 vol.6 回帰 – 線形回帰

本コンテンツは機械学習入門講座を各所でやっている内容の一部を、受講者の皆様の予習・復習のために公開しているものです。対象読者は、Pythonをやったことがほとんどない方やつまづいてしまっている方でも概ね実行できるようになるレベルで書いています。解説は講座でそれなりに詳しくしているため、コードにコメントする以上の説明はあまり記述していません。

各コードはJupyterシリーズやiPythonで記述しながら実行できるように記述しています。

AI/DX/機械学習/Pythonのアドバイザリー、社内研修、セミナー等承っております。
webサイトからお問い合わせください。
[BeeComb Grid株式会社](https://beecomb-grid.co.jp/)

# 機械学習入門シリーズ記事

1. [機械学習入門 vol.1 Pythonの基礎1 記述とデータ型](https://qiita.com/mychaelstyle/items/500f67b01fda79c215d0) -> 講座第3回に相当
1. [機械学習入門 vol.2 Pythonの基礎2 条件分岐と処理](htt

元記事を表示

[py2rb] repr() str()

# はじめに
移植やってます
# repr() str() (Python)
“`python
>>> import datetime
>>> td = datetime.date.today()
>>> print(str(td))
2021-12-09
>>> print(repr(td))
datetime.date(2021, 12, 9)
“`
内容はよく分かりませんが、`Ruby`だと次の感じかも。
# inspect to_s (Ruby)
“`ruby
> require ‘date’
> td = Date.today
> puts td.to_s
2021-12-09
> puts td.inspect
#
“`
上記の場合、`.to_s`は付けても付けなくても同じ結果になります。
# メモ
+ Python の repr を学習した
+ 道のりは遠そう

元記事を表示

[py2rb] hasattr

# はじめに
移植やってます
# hasattr (Python)
“`python
try:
import pandas as pd
except ImportError:
pd = None
else:
if hasattr(pd, ‘_version’):
pv = pd._version.get_versions()[‘version’]
else:
pv = pd.version.version
“`
`hasattr`でメソッドがあるかどうかを確認。
`Pandas`の古いバージョンに対応していると思われ。
# methods (Ruby)
“`ruby
begin
require ‘pandas’
pd = Pandas
rescue => exception
pd = nil
else
if pd.methods.include?(:__version__)
pv = pd.__version__
else
raise “Pandas#__version__

元記事を表示

FastAPI モジュール – APIRouter

前回、FastAPIで大規模なアプリを構築するためのモジュール分割について説明しました。
[FastAPI モジュール – 基本](https://qiita.com/sand/items/ebd4812138e0a5d3a444)

前回はusersモジュールだけでしたが、今回はitemsモジュールを追加したいと思います。

またこの記事全体のソースは以下のドキュメントであり、ここでは部分的な説明を順序をつけて加えています。
[Bigger Applications – Multiple Files – 公式サイト](https://fastapi.tiangolo.com/tutorial/bigger-applications/#the-main-fastapi)

# 1.itemesモジュール

## 1-1.ディレクトリ構成

items.pyを追加します

“`
.
├── app # “app” はPython パッケージ
│ ├── __init__.py # “app” を “Python パッケージ”にする

元記事を表示

英検の勉強なう【美しいスープ】

こんにちは。

先月、英検二級に合格することができたので、早速準一級の勉強をはじめました。

. . . . . .

_人人人人人人人人人_
> いや超むずい! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄

まず単語がわからない。

空欄補充問題一問につき、わからない単語が2つ。
一語一語調べるのめんどくさっ!

な・ら・ば

BeautifulSoupで一気に検索してしまえ。というわけで作りました。

“`python:英単語自動検索.ipynb
pip install beautifulsoup4
pip install requests
pip install lxml

import requests
from bs4 import BeautifulSoup

list=”deficient,acute,lame,juvenile,discontent,prevalence,pledges,grumble,snore,agitate,condemn,detain,expend,hypocrite,beggar,authentic,deadlock,accommodate,f

元記事を表示

Google ColabでWordcloudを作成

こんにちは!!
昨日の@geranium1216くんの記事では、イギリス留学で彼は一体何をしているのか?について書いてくれました!何やら元気そうでよかったです。わざと日本語忘れたふりをして英語を使ってくる尾関くんを怪訝な目で見るその日を、研究室一同楽しみにしています。

[MYJLab Advent Calendar 2021](https://qiita.com/advent-calendar/2021/myjlab)も今日で9日目!
9日目の今日は、ワードクラウドに関して書いてみようと思います。

## はじめに
プログラミング初心者が、Google colabでワードクラウドを作ってみました。
MAN WITH A MISSONという~~狼の頭をかぶった~~バンドの全楽曲を対象にしています。

## 結論
このようになりました。
![wordcloud4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2251068/d8010631-8fa5-7f55-2094-2fdd6d2c1c25.png

元記事を表示

[Pythonで物理シミュレーション] ばね振動の運動方程式をルンゲクッタ法で解いて可視化。連立微分方程式

2021/12/9 投稿
#0 メニュー
1 問題設定
2 2階微分方程式の数値解法
3 計算コード
4 位置、速度の時間変化: xt、vtグラフ
5 運動アニメーション
6 位置と速度の関係 xv空間中の解軌跡
7 減衰振動

※数式は読み飛ばしてグラフ、アニメーションを先に見ても構いません

#1 問題設定

![animete_move.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/834214/f95f58b6-ae5c-aa2e-7668-64825cf6f2c3.gif)

ばねから復元力$-kx$を受けている状況を考える
ばねの自然長からの伸びを$x(t)$とする
この時の運動方程式は

“`math
\frac{d^2 x(t)}{dt^2} = -\omega^2 x(t)
\space\space\space\space
\omega = \sqrt{\frac{k}{m}} \tag{1.1}
“`

$m:$おもりの質量、$k:$ばね定数

#2 2階微分方

元記事を表示

pipでAnacondaをぶっ壊しちゃった☆

[「しくじり先生 Advent Calendar 2021」](https://qiita.com/advent-calendar/2021/shikujiri)9日目の記事です。

自分のローカル環境の話なので、大きな被害はなかったですが自戒を込めて。
また調べていたら、このやらかし例が案外出てこなかったので誰かの参考になればと思います。

##2021年のある日
新しいパッケージをインストールすることになりました。
Anaconda Promptを開いて、いつものようにこう打ちました。

“`python
pip install モジュール名
“`
(どんなモジュールをインストールしようとしたかは忘れた)

一旦別の作業があったのでAnaconda Promptは閉じます。その後Jupyter notebookで作業しようと思い、再度Anaconda Promptを開いてコマンドを打ち・・・

**ん?** **あれ?**

Jupyter notebookが立ち上がらない。さあどうしよう?

コマンドをもう1回打ち直す。それでも立ち上がらない。
裏で走っていたアプリを終了させ

元記事を表示

Databricksにて取得元ファイルを切り替えて変数を動的に取得する方法

## 概要
Databricksにて、変数を保持させた複数のファイルがある場合に、動的に取得元のファイルを切り替えた変数により処理を実行する方法を紹介します。本手順は、[files in a Databricks repo](https://docs.databricks.com/repos.html#work-with-non-notebook-files-in-a-databricks-repo) を利用します。

下記のように変数を保持した2つのファイルがあり、取得元のファイルを切り替えることで変数を動的に取得する方法です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7c08d763-0637-74e5-550e-103d3e1b34a9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e751e9ca-cca5-3d27-41e6-e0161

元記事を表示

Jupyter Notebookをプレゼンにしてみた件

# はじめに

ある日突然、私はPoC開発中のものをまとめてプレゼンすることとなりました。その開発はEDAや解析がメインとなり、もちろん常識のある私はまず最初にJupyter Notebookで開発に挑みました。

Notebookはいいものの、いざプレゼンしろ!と言われましても…と思い、私は「Jupyter Notebook Presentation」という3文字をGoogleの検索バーに入れました。

なんと!感動!感動!感動!

NotebookをそのままPPTXみたいなプレゼンにできるという新世界が広がりました。皆さんもぜひ使ってみてください!

[この記事](https://qiita.com/cvusk/items/d425751ba663dc8c6517)を参考までに!(個人的にはRISEをインストールした記憶はないですが…)

# デモ
私が作成した[デモNotebook](https://raw.githubusercontent.com/YomamaBanana/Mediapipe-python/main/notebooks/test.slides.htm

元記事を表示

[コピペでOK]どのスタンプを誰がどんなチャンネルで使っているんだろう?(Slack API)

# Introduction

## きっかけ
対面コミュニケーションにおいて、[発せられる言葉から受け取る情報は7%で、そのほかの93%は言葉以外の部分から伝わる](https://www.kaonavi.jp/dictionary/non-verbal-communication/)そうです。
非対面のテキストを通じたコミュニケーションによって抜け落ちてしまった情報は、スタンプ等を用いて感情表現を補完した経験が、皆さんにもあるかもしれません。

現職のSlackには、前職と比較して多くのスタンプが使われています。いわゆるカスタム絵文字というものですが、非常にユニークなものも多く毎日驚きと発見の連続です。それぞれのチャンネルを眺めているのも楽しいですが、Slackには各種APIが取り揃えられています。

そこで今回は、SlackのAPIを用いて、スタンプ使用率をさまざまな方法で調査したので、その手法を公開いたします。皆様も自分の社内Slackのスタンプ利用具合を調査してみてください!
なお個人が特定されるような公開できない情報が含まれる場合は、加工いたします。あらかじめご了承ください

元記事を表示

GitHub Actionsのstepsの重複を減らすためのComposite run steps action

GitHub Actionsを使っていて、並列目的などでジョブを細かく分けたときに依存関係の設定などで記述が重複する箇所が結構発生し、それらの重複をComposite run steps action (Composite actionなどとも表記されるようです)という機能を使って軽減したのでその際の備忘録です。

# 発生していた問題とやったこと

少し前にPythonの自作ライブラリのLintやテスト・デプロイなどのGitHub Actionsのジョブで依存関係の設定のキャッシュ機能やジョブ分割による並列実行などを対応しました。多くのジョブを走らせても処理時間などは良い感じに気にならない形となりました。

一方でジョブの分割によって依存関係の設定など(Pythonの設定やPythonライブラリのパッケージ設定など)の記述が各ジョブ間で重複している箇所がsteps内で目立ちました。

DRY原則的にもこの辺は重複が多いと結構気になりますし変更する際などに変更漏れなどが発生しそうであまり良くありません。

そこでComposite run steps actionという機能を使ってst

元記事を表示

ネームスペース取得する方法色々

アセットをリファレンスして作業する前提でサポート用のツールを作る際、
ネームスペースを取得して色々行ったのだけども、そのときの紆余曲折をまとめ

namespaceInfoで問い合わせ

allNameSpace = []
ignorList = [‘UI’, ‘shared’]
allNameSpace = cmds.namespaceInfo(listOnlyNamespaces = True)
allNameSpace = list(set(allNameSpace) – set(ignorList))

シーン内のネームスペースを全部取得してくれる。

全部返してくれるので [‘UI’, ‘shared’] といったデフォルトのネームスペースも含まれる。
**unload状態のリファレンスで使用しているネームスペースも返してくれる。**
そのネームスペースがリファレンスで使用しているのか否かが判らない。

referenceQuery で問い合わせ

allNameSpace = []
refNodes = cmds.ls

元記事を表示

Snykでコンテナのセキュリティハードニング 【Snykテクニカルサポートを使ってみた】

# はじめに
こちらの記事はアドベントカレンダー[Snykを使ってセキュリティにまつわる記事を投稿しよう!【PR】Snyk](https://qiita.com/advent-calendar/2021/snyk)の9日目として投稿しています。

Snykは脆弱性スキャンが簡単に自動化でき、修復まで可能なセキュリティプロダクトです。単純なソースコード検査だけでなく、依存しているライブラリの脆弱性やコンテナイメージそのものをスキャンすることができ、非常に強力なツールとなっています。

この記事では、わざと脆弱性を入れ込んだコンテナイメージを作り、Snykで検知できるかどうか試しました。
また、人気のあるOSSライブラリを検査し、見つかった脆弱性にパッチできるPRを自動でSnykから生成してみます。

# Snykの脆弱性スキャンの仕組み

## ルールベース+機械学習モデルでの精度向上
メインの脆弱性スキャン自体はルールベースの一般的なやり方です。それにフィルタとして、**機械学習ベースのモデルで偽陽性・偽陰性を少なくし、検知精度を上げている**ようです。

また、脆弱性の検知ルールとし

元記事を表示

Pythonで学び直す数学【統計編】~統計指標の求め方/度数分布表を描画してみよう

Pythonのコードで、CSVやExcelのデータを読み込んだり、統計指標を使ったりする機会は、普段Pythonを使っている方であれば使い慣れている方もいらっしゃると思いますが、実際には少し興味はあるけれど、どうPythonで書いてみればよいのかわからないという方のほうが多いのではないでしょうか。ここではPythonのライブラリの基本的な書き方を含め、読み込んだCSVデータの内容を、統計的に処理・表現するという形の演習をしていきたいと思います。

「数学的な問題をPythonで簡単なスクリプトを作って動作を確認する」こと通して、Pythonに触れる機会をつくっていきたいと考えています。Pythonに慣れるという点でも手を動かして考える機会にして頂ければ幸いです。

今回は、Pythonで学び直す数学【統計編】の確認をしていきたいと思います。
演習問題のダウンロードはこちらから

![image.png](h

元記事を表示

Jupyter Notebook上で画像分類用のアノテーションをする

## はじめに

画像のアノテーション作業、面倒くさいですよね。
特に、簡単なn値分類(n<=3)程度のアノテーションの場合、面倒なのがアノテーション自体の準備だったりすると思います。 そこで、簡単な分類タスクのアノテーション作業をJupyter Notebook上で実現することにしました。 NOTE: 本記事のコード部分は、参考記事[Python: ipywidgets で Jupyter に簡単な UI を作る](https://blog.amedama.jp/entry/ipywidgets-jupyter-ui)のコードおよびコメントを拝借し、それに修正を加えたものになります。 参考記事では、別のユースケースに適用するための説明とコードが非常に沢山かつ丁寧に含まれておりますので、興味があれば一読することをお勧めします。 ## コード ```python import random from PIL import Image import ipywidgets as widgets from matplotlib import pyplot as plt from glo

元記事を表示

OTHERカテゴリの最新記事