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

Python関連のことを調べてみた2022年06月03日
目次

【linux】.sh実行結果をログファイル出力する(特にpython系)

# 結論

shellの実行結果をログファイル出力する。
リリース時に重宝する。
ターミナルの結果が消えても安心。

1. 実行したいコマンド郡を{ファイル名}.shで用意する。
1. 下記コマンドを実行する
ログが吐かれる。
“`bash
script -c “{ファイル名}.sh” /dev/null | tee {ファイル名}.log
“`

# 背景

Pythonのログは`script -c`で実行しないと、動作の完全終了後にすべてのログが一気に吐かれてしまう。
途中経過がログで追えなくなるので、上記コマンドで対応する。

元記事を表示

Macを手に入れてからpyenv+pipenvの環境を構築するまで

7年ぶり?にMacを利用して少しつまづいたので備忘録。
2度くらいやり直してこの手順が良いと思いました。

1.bashを最新にしてログインシェルをbashにする
https://zenn.dev/shibe23/articles/cd7a1e2f0ae0d8

2.brewをインストールする
※/bin/bashではなく上記でインストールしたパスでインストールスクリプトを実行すること
https://brew.sh/index_ja

3.brewからpyenvとpipenvをインストールする
“`
brew install pyenv
brew install pipenv
“`

zsh使いたいよー、という人は2からこの手順にして最後に3を実行すれば良いかと思う。https://zenn.dev/sprout2000/articles/bd1fac2f3f83bc

取り合えず1日目なので、一ヶ月くらいしたら気が変わるかもしれません。

元記事を表示

Gitlab信号機を作る話 -リセットボタンを付ける-

前回、Gitlab信号機にて開発プロジェクトのステータス状態を表すLED信号を作りました。
[Gitlab Pipeline信号機を作る話 -設計とブレッドボード編-(2022年6月2日)](https://qiita.com/wataru775/items/8933d3662ac5eb90998b)

信号機なので点灯状態での放置でも良いですが、消しておきたいこともあります。
なので、今回は全灯を消灯するリセットボタンを設置します。

ボタンの設置自体は昔は難しかったですが今は超簡単です。

# 設計する
はじめに今回ボタンを追加するGPIOピンを決めて配線図を作成します。

## GPIOピン計画
信号機のLEDに使っているGPIOピンは12,27,22,23を使っています。
なので、近いGPIOピン…
GPIO24を使います
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2481837/c570eebf-3b1b-2d02-302c-888423209160.png)

記事を書き

元記事を表示

Python 3.10 のwithステートメントで複数のオブジェクトを扱う

# Python 3.10 での `with` ステートメントに関する仕様変更

Pythonで `open()` 関数等と併用される `with` ステートメントは、カンマ区切りで指定することにより複数のオブジェクトを扱うことができる。(Python 3.1 以降)

“`python
with open(“file1.txt”, mode=”w”) as f1, open(“file2.txt”, mode=”w”) as f2:
f1.write(“This is file1”)
f2.write(“This is file2”)
“`

Python 3.10 では、括弧で囲うことで複数行にまたがって書けるようになった。

“`python
with (
open(“file1.txt”, mode=”w”) as f1,
open(“file2.txt”, mode=”w”) as f2,
):
f1.write(“This is file1”)
f2.write(“This is file2”)
“`

公式ドキュメン

元記事を表示

MacでGISデータ分析を始めるためにサクッとAnacondaとjupyter labをインストールしてみる

## **Anaconda食わず嫌いからの脱却**

Pythonでコードを書くときにはPipenvを利用して仮想環境を構築することがほとんどなんですが、ここ最近GISデータを変換したり解析したりすることが多くなってきていて「あんまり詳しくないけどJupyterとか使ったら楽っぽいよなー」とか思ったのがきっかけでAnacondaやjupyterを利用し始めたのですが、これがとても快適だったので皆さんにもおすすめしていこうというやつです。

Anacondaはhomebrewとめちゃ相性が悪いとか他の仮想環境と競合してきついとかアンインストールできねぇとか色々聞きますが、アプリケーション開発時にはDockerを利用して環境構築することでそれらをほぼ無視することができると思うので、勇気を出してレッツトライ。

## Anacondaをインストールする

こんな環境でやっていきます。

“`bash
❯ sw_vers
ProductName: macOS
ProductVersion: 12.4
BuildVersion: 21F79
“`

こちらの記事とかとても参考になり

元記事を表示

100日後くらいに個人開発するぞ!day038

## 今日は変数を使ってみた!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2632394/3738f32e-d525-657e-f430-c37b7d41ccc6.png)

## 今日の学び

### 変数とは
* 変数とは:値を入れる箱のようなものを変数という。
* 変数の定義:変数を使うには定義する必要があり、「変数名=値」で定義する。
* 代入とは:変数に値を入れることを代入という。
* 注意点
* 変数をクオーテーションで囲むと変数ではなく文字列となる
* プログラムは上から順に実行されるため変数を定義した後でしか使えない

### 変数を使うメリット
* 同じ要素を繰り返し使える
* 変更に対応しやすい
* 何の要素かわかりやすい

### 変数名のルール
* 英単語を用いる
* 頭文字に数字を用いるとエラーが出る
* ローマ字や日本語は望ましくない
* 2後以上の場合はアンダーバーで区切る

### 変数の値を更新する
* 変数

元記事を表示

GoProを無線でつないでオンライン会議で中継をしたい件

GoProを無線でつなぎ、Teamsやzoom等で中継する方法が欲しくなったんですが、
実例が見つからなかったのでやってみた件を備忘録として残します。

#目次
[1.はじめに](#1-はじめに)
[2.準備](#2-準備)
[3.ネットワーク接続](#3-ネットワーク接続)
[4.ffmpeg起動](#4-ffmpeg起動)
[5.おわりに](#5-おわりに)

# 1. はじめに
ヘッドマウント的なカメラで、作業者の手元をオンライン会議で共有しつつ、議論をしたいニーズがありました。
当初はGoProやデジカメ+キャプチャボードをUSBケーブルで繋いでいましたが、ケーブルがジャマで作業しづらいし、カメラマンと作業者の二人が必要でこのご時世に密になってしまうのが問題になっていました。
下図のように、Win10環境で無線で構築するシステムを作ることを目的とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1112433/dccb42ae-04b7-9e01

元記事を表示

【Colab】【Python】動画(mp4)をGIFファイルに変換する方法

# 結論
:::note
Google Colaboratoryサービスで、Pythonのライブラリ「MoviePy」を使用して、動画(mp4)をGIFファイルに変換する
* [Colaboratory へようこそ – Colaboratory – Google](https://colab.research.google.com/?hl=ja “Colaboratory”)
* [MoviePy 1.0.2 documentation](https://zulko.github.io/moviepy/ “moviepy”)
:::

# サンプルコード
“`Python:sample.py
# ファイルアップロード
from google.colab import files
uploaded = files.upload()
# アップロードしたファイルの名前を取得
file_name = list(uploaded.keys())[0]

input_fileName = file_name
# 変換後のファイル名を設定
output_fileName = “processin

元記事を表示

マルコフ連鎖の例に挙げられる明日の天気の実際の確率を調べてみた

:::note warn
マルコフ連鎖でどうこうする記事ではありません
:::

# 1. はじめに
マルコフ連鎖についての例でよく今日の天気によってのみ明日の天気が決まるというものがあります。
はっきり言って全然現実世界に即していない例で、もはやマルコフ連鎖が使える場所など存在しないと言っているようなものではないかとすら思うのですが、ここで一つ疑問がわきます。
**別に確率だけなら求められないか?**
ということです。

現実世界において、今日の天気によってのみで明日の天気が決まるということはあり得ませんが、過去のデータを分析することによって、現在に至るまでの確率の値は求めることができるのではないでしょうか。

という訳で、**気象庁から過去のデータを所得し、状態遷移図を作成する**といったところまでやっていきたいと思います。

ちなみにgithubにて今回のコードのipynbファイルを公開しています。

https://github.com/seeton/markov_weather

# 2. 過去データのスクレイピングと変更
下記リンクの記事が大変参考になりました。
[Goo

元記事を表示

ダウンロードしてきたPDFをファイルを作成せずに文字列として扱いたい

`requests`でダウンロードしてきたPDFをファイルに保存せずにstrオブジェクトとして扱う方法です。

いつもだと、下記のようにpdfとして保存しますが、
今回のケースはファイル保存せずにpythonのstrオブジェクトとして扱いたいケースです。

“`python
# PDFファイルとして保存するとき
# 今回はこれを禁止して.pdfをドライブに残さない
with open(“hoge.pdf”, “wb”) as f:
f.write(resp.content)
“`

“`python
import requests
from pdftotext import PDF
from tempfile import TemporaryFile

url = ‘https://github.com/progit/progit2-ja/releases/download/2.1.7/progit.pdf’
resp = requests.get(url) # (1)

# PDFファイルとして保存するとき
# with open(“hoge.pdf”, “wb”)

元記事を表示

pyenvでビルドが失敗して、pythonをインストールできない

## Pythonのインストールでエラーが出た
Atcoderを始めるため、pythonの環境を用意しようとpyenvをインストールし、
“`
$ pyenv install 3.9.1
“`
を実行すると下記のようにエラーが出た。
“`
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.1.tar.xz…
-> https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz
Installing Python-3.9.1…
patching file Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
patching file configure
patching file configure.ac
python-build: use readline from homebr

元記事を表示

福島県 県民割プラスのクーポンが使える加盟店のPDFをCSVに変換

福島県 県民割プラスのクーポンが使える加盟店

https://www.tif.ne.jp/kenminwariplus/

“`python
import pathlib
from urllib.parse import urljoin

import camelot
import pandas as pd
import requests
from bs4 import BeautifulSoup
from tqdm.notebook import tqdm

def fetch_soup(url, parser=”html.parser”):

r = requests.get(url)
r.raise_for_status()

soup = BeautifulSoup(r.content, parser)

return soup

def fetch_file(url, dir=”.”):

p = pathlib.Path(dir, pathlib.PurePath(url).name)
p.parent.mkdir(p

元記事を表示

ワンポチでブロックチェーンにデータを刻むボタンを作ってみた

# 概要
ボタンをポチッと押すだけで、予め設定しておいたアドレスに
トランザクションを飛ばせる仕組みを作ってみました。

![SendXymButton.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285378/41e2ad3a-e082-b201-4fe2-9cfc19b04efb.png)

# きっかけ
Symbolブロックチェーンのコミュニティ内で、
「頑張って開発してるコアデブの人たちに、レッドブルとかお菓子を買える
チップを送って応援できたら良さげだよね!」というお話が出たのがきっかけです。

Twitterとかで「コアデブすげぇ~!」と気分が盛り上がった時に、
ワンポチで衝動的にチップを送れたら面白いなと思いました。
ウォレットでアドレス設定して…とかすらすっ飛ばして、物理ボタンワンポチで推しに投げ銭です。

#

元記事を表示

Kneser-NeyスムージングによるN-gram言語モデルを実装してミニマリズム言語トキポナを学習させる話

最近ではニューラルネットを使った言語モデルがよく用いられていますが,N-gram言語モデルをいまさら実装し,いまどきKneser-Neyスムージングで遊んで知見を深めようという気持ちの記事です.せっかくなので,「Basic English」や「やさしい日本語」よりもかんたんで,単語が120語しかないミニマリズム言語トキポナの言語モデルを作成し,その挙動を観察します.

(この記事と同じ実装をgithubで公開しています https://github.com/nymwa/knlm )

# N-gram 言語モデル

言語モデルとは,単語の列の出現確率を与える確率モデルです.単語列 $a_1, a_2, a_3, \cdots, a_n$ の確率を
$$p(a_1, a_2, a_3, \cdots, a_n)$$
として計算します.言語モデルは,「ことば」を確率で表したモデルと言うことができます.

言語モデルを用いて,単語列の確率を計算するとき,各単語ごとに確率を計算し,掛け合わせるということがよく行われます.この際,単語列の確率は,条件付き確率の積として表されます.
“`math

元記事を表示

Python3 基本構文

# Python3 基本構文

Pythonを書く機会があったのでよく使う構文をまとめます。

## 0. インデント

Pythonではインデントを落とした部分が処理ブロックになるので、`if 条件:`や`for ~ in ~:`などの後はインデントを落としましょう。

## 1. 変数定義

Pythonは動的型付け言語なので、変数宣言時に型宣言は必要ありませんが、**定義した変数が何型(整数, 浮動小数, 文字列, 真偽値, …)なのか常に意識して書く**と、コーディング時にキャスト(型変換)が必要かどうかの判断が容易になったり、他言語でも型で苦労することは無くなると思います。

“`python
# ==================================
# ————- 変数定義 ————
# ==================================

# Integer(整数)型
num1 = 10
num2 = -3

# Float(浮動小数)型
num3 = 1.5
nu

元記事を表示

アルゴリズムのモヤモヤをPythonで解消(6): ヒープソート

##### [前回] [アルゴリズムのモヤモヤをPythonで解消(5): マージソート](https://qiita.com/mingchun_zhao/items/29850c6fa514a2840e1f)

## はじめに

`Pythonでアルゴリズムを楽しむ`、第6弾です。

## 今回のアルゴリズム: ヒープソート

### 問題

以下8つの数字を昇順で整列せよ。
`8 4 3 7 6 5 2 1`

### 解決案

ヒープソートを使用し、解決します。
その前に、理論知識のおさらいから。

#### データ構造: 木構造(きこうぞう、tree structure)

– 一つの要素(ノード)が複数の子要素を持ち、
– 一つの子要素が複数の孫要素を持ち、
– という形で階層が深くなるほど枝分かれしていく構造

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/b27a5428-7d64-2005-b7c4-85d67568895f.png

元記事を表示

「”すぐ” このデータまとめて欲しい」に ”すぐ”に超簡単に応えられる Python の・・・(その7)

https://qiita.com/hima2b4/items/6ee580e9f9b8fd58480f

~ ↑↑ **前回記事** ↑↑ :~機械学習で 特徴量を絞って決定木を描くまでを自動化 してみる(問題解決に機械学習を活用:AutoEDA、Boruta-SHAP)〜 の**続き**です。
 

## はじめに
実務で前回記事で紹介した内容を実務で適用したところ、早速いくつかの課題があり、以下の点を見直すことにしました。
– 現実データはゴミだらけ。。。前回の前処理では削除しすぎてしまうため、欠損値を残すことなどを含め、再考。
– Boruta-SHAPは、データが多いと処理に時間を要する。特徴量選択はBoruta に変更、SHAPの重要度とともにグラフ表示、Boruta-SHAP → Boruta + SHAP という感じ。SHAPのよさである特徴量と目的変数の関係把握も活かしたい。

この記事では、上記の課題に取り組もうと思います。

## 実行条件など

>- **Google colab**で実行(※前回同様、いくつかのデータセットをLoadできるようにしています

元記事を表示

Python初心者がkaggleを使ってECサイトの需要予測をやってみた!

https://www.kaggle.com/code/teraodaiyou/notebook740f191599
今回のブログで使用するkaggle notebookです。

# 1. 目次
Ⅰ. はじめに
Ⅱ. 実行環境
Ⅲ. データ分析実行内容
Ⅳ. 各用語について
Ⅴ. 売上予測までの流れについて
Ⅵ. 具体的なコードの記述について
Ⅶ. 考察
Ⅷ. 終わりに
Ⅸ. 参考文献
# **2. はじめに**
産業機械メーカーに勤務しており、近年、『AI』や『DX』、『ビッグデータ』というワードをよく耳にすることから仕事でデータを使う機会が増えてくると考え、AIdemyの受講を決意いたしました。
2022年3月中旬よりデータ分析講座3ヶ月コースを開始し、現在2ヶ月超経過したところです。

私自身プログラミングは初めてで、パソコンの知識も乏しい状態でスタートしましたが、AIdemyの先生方からの的確なご指導やアドバイスをいただけたおかげで、なんとか最終課題の成果物まで漕ぎ着けることができました。
カリキュラムはPython入門から始まり、NumPyやPandasまではテキストに沿って

元記事を表示

Takahashi’s Information [AtCoder Beginner Contest 088 C]を数学的に解説

問題は以下を参照
https://atcoder.jp/contests/abc088/tasks/abc088_c

## 概要
3×3 のグリッドがあり、上から i 番目で左から j 番目のマスを (i,j) で表すとき、マス (i,j) には数 ci,jが書かれている。
Ci,jが標準入力として与えられる。
この時以下の命題が成立するかを判定せよ。
Ci,j=ai+bj(1<=i<=3,1<=j<=3)が成り立つ定められた整数a1,a2,a3,b1,b2,b3が存在する・・・① ①が真ならばYesを偽ならばNoを出力せよ。

C1,1 C1,2 C1,3
C2,1 C2,2 C2,3
C3,1 C3,2 C3,

「メルケプストラム」取得大全(Python)

# はじめに
メルケプストラムの取得方法をまとめました。
# 1. [pysptk.sp2mc(powerspec, order, alpha)](https://pysptk.readthedocs.io/en/latest/generated/pysptk.conversion.sp2mc.html)
## 1-1. 概要
pysptk.sp2mcはpyworldで求めたスペクトル包絡からメルケプストラムに変換する関数です。フレーム処理も自動で行ってくれます。代表的な引数について以下にまとめます。
* powerspec
pyworldで取得した声道スペクトル(スペクトル包絡)。何も考えずにそのまま入力してOKだけど、API的にはパワースペクトルだから、振幅スペクトルでないことに注意したい。
* order
メルケプストラムの次数。しかし、出力はorder+1のメルケプストラムが出力されるからその点には注意したい。
* alpha
all-pass constantというものらしいです。SPTKのREFERENCE MANUALによると以下のように記載されています。
>The ph