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

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

Pythonでクリックしたスクリーン上の座標を求める方法のメモ(pynput)

# Pythonで、クリックした画面上の座標を求める方法

※ Pythonに関しては最低限の知識がある方向けです。

`pynput`は外部パッケージなので、pip等を用いインストールします。

“`
pip install pynput
“`

インストールしたら、次のコードを動かせるようになります。

“`python:cursol.py
from pynput.mouse import Listener

def on_click(x, y, button, pressed):
if pressed:
print(‘{:5.1f}, {:5.1f}’.format(x, y))

with Listener(on_click = on_click) as listener:
listener.join()
“`

クリックで押された時に離れた時に、定義された`on_click`が呼ばれます。

第1引数`x`は、普通のx軸。左端が0。
第2引数`y`は、下方向のy軸。上端が0と。
第3引数は、``。

元記事を表示

【Python】HDF5で日本語出力ができなくて困った件

## 背景
HDF5で日本語を保存したとき
` b’\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86’`
のような出力になってしまい困っていたのですが、解決できまちた

が、より良い方法があればご教授いただけると幸いです٩( ‘ω’ )و

そしてPythonを普段使わないのでマズイことしてたらご指摘くださいませ

## バージョン情報
python:3.6.1
h5py:2.7.0
※ Dockerで動かしています

## コード
出力時に`decode(‘utf-8’)`でデコードを行うことで解決できました。
“` python
import h5py

with h5py.File(‘sample_dataset.hdf5′, mode=’w’) as f:
# vlen=str でないとUnicode文字が使えないので注意
str_dtype = h5py.special_dtype(vlen=str)

dataset = f.create_dataset(
‘str_dataset’, shape=(1,1), d

元記事を表示

自動微分に再入門する(2)

## 概要

この記事は[自動微分に再入門する(1)](https://qiita.com/nisim/items/489af9055afc88c93d13)の続きです。

今回はPython(PyTorch)で自動微分を実際に使ってみます。

なお、本記事は[PyTorch](https://github.com/pytorch/pytorch)の[チュートリアル](https://github.com/pytorch/tutorials/blob/master/beginner_source/examples_autograd/polynomial_autograd.py)を参考にしていますのでそちら参照しながら読み進めてください。

## 関数のフィッティング

データから関数のフィッティングを考えます。データは$\sin(x)$から生成します。

具体的には$[-\pi, \pi]$の範囲で$\sin (x)$の値を等間隔で2000個計算したものがデータとして与えられているとします。

散布図にするとこんな感じです。[^ 1]

[^1]: 実際にはデータ数は2000個なので

元記事を表示

複数ファイルの一括読み込みとデータフレームの作成

■ライブラリのインポート
“`python
import pandas as pd
import glob
“`

■一括で読み込み
“`python
file_paths = glob.glob(“天気\*.csv”)
df = pd.DataFrame()
for file in file_paths:
tmp = pd.read_csv(file, encoding=’cp932′)
df = pd.concat([df,tmp])
“`

以上がファイル読込とDFの作成(連結)方法。

おまけ
読込ファイル名などをカラムとして指定したい場合
※今回だと都市名ファイルをスライスして抽出
“`python
file_paths = glob.glob(r”天気\*.csv”)
df = pd.DataFrame()
for file in file_paths:
tmp = pd.read_csv(file, encoding=’cp932′)
tmp[“都市”] = file[-7:-3] #ファイル名の一部をカラム追加したい場合はココ

元記事を表示

[Whisper+ESPnet2(VITS)]音声合成システムを作った備忘録

# 概要
初めての投稿+初めてのMarkdown記法なので読みにくかったら申し訳ないですが、備忘録+結果報告として残しておきます。
youtubeの音声データを用いているので、問題があれば削除します。
40分程度の雑な作りの学習用データでファインチューニングすればここまで行けるよ!ってイメージで結果だけ見ていただいてもかまいません。

以下の2つの構成で、テキストからの音声合成システムを作りました。
1. 収集した音声用データ(一人の音声)を、Whisperを用いて学習用データを作る
2. ESPnet2を用いて学習

今回は2.の部分は以下の記事のまま実行したので、メインで書くのは1.の部分となります。2.の部分は[以下の記事](https://qiita.com/RRR_troisR/items/6288b9bdc6e725aa8440)を参照してください。
ここでは解説しない知識なども載っているので、こちらをまず読むことをお勧めします。

https://qiita.com/RRR_troisR/items/6288b9bdc6e725aa8440

# Whisperと

元記事を表示

インスタンスの負荷状況をリアルタイムにプロットする

![vmstat-real-time.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261594/c9fcd78c-a16c-bef5-0d95-0be11d462449.gif)

## 概要
業務でEC2のインスタンスサイズの選定を行う機会がありました。
選定にあたって、開発環境のインスタンスに負荷をかけ、その負荷状況から本番のインスタンスで許容したいアクセス数にはどのくらいのリソースが必要かをある程度の見積もりとして出す、ということをしてみました。

その過程でインスタンスの各種統計情報をローカルに落として手元にプロットしてみたので備忘録として記しておきます。

方針としては、
– インスタンスにSSH接続
– “`vmstat“`にて統計情報を取得
– 上記をローカルのファイルに追記
– ローカルでファイルをwatchしておいて、更新をプロットに反映

という手順で行ってみました。

~~EC2ならcloudwatch logs agent使えばいいのでh~~ 聞こえませんね。

## 統

元記事を表示

家庭教師がオンライン授業のためのホワイトボード共有サイトを作ってみた

## 前提
コロナ禍の状況で、zoomを使ってオンライン授業をしていたが、使いにくかったので、自分で作ることにしました。
[ボードミート](https://board-meet.com/ “ボードミート”)

## 技術
**バックエンド**
— 言語
– Python3

— フレームワーク
– Django 3.0.6

**フロントエンド**
— 言語
– CSS
– Javascript
– HTML

— フレームワーク
– jquery
– materiallize.css

**インフラ**
– AWS EC2
– AWS S3 storage
– AWS Route53

## アーキテクチャー

![スクリーンショット 2022-11-01 18.48.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1860891/9ab885ca-2127-3908-bec2-4ce2e87d8942.png)

## 工夫した点
– webRTCを使ってシグナリングをする際に、複数人

元記事を表示

esptoolでESP32にファームウェアを書き込む方法

## はじめに
windowsを使っている人だと, 最初使うであろうIDE 「uPyCraft」ですが, いろいろと不調が起こりやすく使いにくい。
なので今回は, esptoolコマンドを使ったESP32のセットアップを説明します。

## 準備
pythonのpipインストールを使い, esptoolコマンドをインストールします。

##### ・pythonのインストール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2728179/5f137a33-2f7c-d5c2-27ba-131ae05d0578.png)

Menuの「Downloads」にホバーし, 「Python3.11.0」をクリック
詳しい手順↓
https://www.python.jp/install/windows/install.html

##### ・esptoolのインストール
“`
pip install esptool
“`

## ESP32にファームウェアをインストール
1. ESP32

元記事を表示

Pythonにおける日本(東京)時刻の取得 ※Google colabでdatetimeを使用

# Pythonにおける日本時刻の取得について書く。

※2022/11/1 09:00 環境に関して追記。

*このコードはGoogle colabで使用することを想定しています。*

## 目的
**Google colab上で日本時間を取得して格納すること**

まず一般的に現在の時刻を取得する方法は下記のコードである。
“`python
import datetime
now = datetime.datetime.now()
“`
しかし、これは**UTC時刻**であり、**日本時刻**とは違います。
Google Colabでは協定世界時をデフォルトにしているため、これを日本時間に直す必要があります。

## 日本時間の取得方法

“`python
import datetime
from pytz import timezone
now = datetime.datetime.now() #現在時刻生成
now = now.astimezone(timezone(‘Asia/Tokyo’)) #タイムゾーンを東京に
“`

上記を付け加えることで、**

元記事を表示

ツイッターの自動懸賞応募botを作るまで python 

pythonを学び始めて3週間経った 基礎構文なども身についてきたため、なにか作りたいと思いアイデアを探っていたところ、
どうやらツイッターにおいてアカウントを自動bot化し、自動でフォローなどが出来ると知り、懸賞ツイートに自動で応募出来ないかと思った

調べてみるそういうコードがちらほら見つかるが、どうやらリツイートされたものまで拾ってきて、さらにはそのリツイートした全く関係ないユーザーをフォローしてしまうコードであったり、以下のようなツイートへの対処はどのコードも考えられてなかった

プレゼント企画ツイート(特に認証アカウントの)にはフォロー&リツイートをすれば参加できるものが圧倒的に多い。ただ「こちらのアカウントも併せてフォローしてください!! @~~~ @ー----」 というように企画に関連するユーザーのフォローも促すツイートもちらほら見かける。

公式アカウントのプレゼント企画は当選確率は低いかもしれないが、信憑性が高いので逃したくない

今回はこういうツイートにも対応しているような、メンションを正規表現で抽出してフォローするようにしたいと思う

### BOTを作る3つの流

元記事を表示

アルゴリズム実技検定(PAST) 第11回 E問題 Python解答例(二分探索)

SupershipでVPoEしている名畑です。

「[アルゴリズム実技検定(PAST)について 並びに 第11回A〜C問題 Python解答例](https://qiita.com/nabata/items/0421f20e8ec849ee70ad)」と「[アルゴリズム実技検定(PAST) 第11回 D問題 Python解答例(Union-Find使用と不使用)](https://qiita.com/nabata/items/013c2fed8386967daa3f)」の続きとして、アルゴリズム実技検定(PAST)第11回のE問題の私の解答例(Python3)を公開します。

## 第11回の過去問題全部

– [第11回](https://atcoder.jp/contests/past202206-open)

## 第11回 E問題 変わった数列(7点)

### 問題

– [E – 変わった数列](https://atcoder.jp/contests/past202206-open/tasks/past202206_e)

### 私の言語

– Python (3.8.

元記事を表示

PythonでOpenCV with CUDAを使う方法

## 概要

pip経由でOpenCVをインストールすると使用できないモジュールや機能がありますが、GPU利用もその一つです。公式ドキュメントや参考文献を見ながらOpenCVをC++からビルドしてPythonでGPUを使用できるようにします。

## OpenCV with GPU

OpenCVでGPUを使うことができます。もう少し具体的に言うとOpenCVで用意されているCUDAモジュールを使用することでNVIDIA GPUを使うことができます。他にもOpenCLを使うこともできたり細かい話は色々ありますが詳細は割愛します。

## pipでインストールしたOpenCVには制限がある?
PythonでOpenCVを使う場合、pipを使って下記のコマンドでインストールすると思います。

“`shell
pip install opencv-python
“`

または

“`shell
pip install opencv-contrib-python
“`

このようにpip経由でインストールされたOpenCVではCUDAを使用することができません。例えば次のようなC

元記事を表示

Pythonの関数デコレータに入門する

## 概要

Pythonを使っていると`def`の上部に@がくっついていることがありますよね。

“`python

@main.result_callback()
def run(a, b):
….
“`

これ、関数デコレータ(以下、デコレータ)と呼ばれるものらしいのですが、調べてみてもよくわからないし、使い道もサッパリだったので無視してました。

だがしかし。

大量にデコレータがついているソースコードに遭遇してしまい、どうしても理解しないといけない状況になりました。

仕方なく重い腰をあげて勉強してみます。

## デコレータの基本の「き」

デコレータの最低限の動きを確認するために次のコードを実行してみます。

“`python
def decorator(f):
def inner():
print(‘before’)
retval = f()
print(‘after’)
return retval
return inner

@decorator
def example():
print(‘insi

元記事を表示

Python3で静的Webページをスクレイピング

# 開発環境、前提

– macOS Ventura 13.0
– Rancher Desktop 1.6.1
前提:dockerコマンド、docker-composeコマンドを使える
– ターミナル、またはVisual Studio Code

# やること

– 入力:Webページのリンクを記載したテキスト(※)
– 出力:パースした情報を記載したテキスト

処理
1. 各行のWebページのhtmlをダウンロードする
1. HTMLをダウンロードする
1. いい感じにパースして必要な情報をパースする

※ 注意
– この記事では、実験的にYahoo!ファイナンスの日経平均株価とダウ平均を取得してみる。
– 一般的に、Webページを定期的に/網羅的に/大量にスクレイピングする場合、国内法や利用規約に準拠しているか、確認する必要がある。
– __筆者はこの記事で、Yahoo!ファイナンスを定期的に/網羅的に/大量にスクレイピングして良いかどうか確認していない。推奨もしていない。__

# ディレクトリ構造

“`
scraping-py3 % tree
.
├── Dockerfi

元記事を表示

【言語学者向け】エクセルの調査票からpdfの調査票を作成する (Python + TeX)

# 想定読者
フィールド調査をする言語学者

# 目的
エクセルに記入した調査票から、調査時に文字を書き入れるためのpdfの調査票を作る。

# できること
こんな感じのエクセルから
![スクリーンショット 2022-10-29 21.32.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573180/62089396-21dd-62d6-8155-665cc05da97e.png)

#こんな感じのpdfを生成する
![スクリーンショット 2022-10-29 22.11.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/573180/13fa765a-e7c5-7c21-8418-b057cd113e37.png)

# 背景
多くの研究者は、フィールドワークの準備としてエクセルで調査票を管理することが多いと思う。また、共同プロジェクトで共通の調査票を用いる場合、エクセルで調査票が配布されることがほとんどである

元記事を表示

Windows/Mac/Linux対応のウインドウタイトルを設定する関数を作る

タイトルバーに表示する文字列を設定する関数です。
Windowsならコマンドプロンプト・PowerShell、Mac・Linuxならターミナル(端末)のウインドウ上部のタイトルバーに表示されている文字列をいじります。

私の調べる限りだとタイトルを設定する関数がおそらく存在しないっぽいので、自分で作ってやろうって感じです。

## 環境
– Python – すべて3.10.xに統一

今回は以下の4つのOSで動作検証を行いました。

– Windows – Windows11 Pro 22H2
– Mac – macOS Ventura 13.0
– Linux – Ubuntu 22.04.1 LTS / Fedora Linux 36

## ソースコード
“`python:Title.py
import os

def title(text):
# OSの種類を判別する
# Windows
if os.name == ‘nt’:
os.system(f’title {text}’)
# Mac / Linux
elif os.name == ‘

元記事を表示

win32com com_error: (-2147221005, ‘クラス文字列が無効です’, None, None)の対処法

win32comを使ってOutlookを自動化した際にエラーが発生した。

自分のパソコンでテストした時は問題なく動作したが、他部署にexeファイル化して渡したところ

#### com_error: (-2147221005, ‘クラス文字列が無効です’, None, None)

というエラーが表示された。

アプリケーションを読み込む部分でエラーが発生している

“`py
import win32com.client
outlook = win32com.client.Dispatch(“Outlook.Application”)
“`

色々と調べると

– bit数が違う
– Outlook.exeがローカルに保存されていない

この2点が問題ではないかと書いてあったが、どちらも問題はなかった。

## 結論

WindowsのスタートメニューからOutlookが消えていた。
どうやらローカルに保存されているだけでは読み込んでくれない模様。

設定のアプリと機能からOfficeをクイック修復をしたところエラーが解消した。

https://support.micros

元記事を表示

WindowsにPycharmの「Failed to create a virtual environment」解決

# 事象
Windows11にPycharm CE版を入れて、「Python Interpreter」を設定する時に、「Failed to create a virtual environment」というエラーメッセージが出てしまって、設定できなかった。
メモとして、解決案を残します

# 解析
* Pycharmに対して、何か環境にエラーが起きた時に、「idea.log」にエラーメッセージとか普通に残っています。
* 「Help」→「Show log in Explorer」を押す
* 「idea.log」中の内容を確認する

# 解決
## エラー内容
“`
INFO – #c.j.p.p.PyPackageManagerImpl – Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding
Python runtime state: core initialized
LookupError: unknown encoding: window

元記事を表示

Python メモ:for文で動的にlambda式を使う

# はじめに

メンテナンスツール(スクリプト)を数々作成したため、いちいちスクリプトファイルを選んで実行するのは面倒でした。そこで、TkinterによるSelect Launcherを作り、選択実行できるようにしました。
ボタンを作るたびに、その数分tk.Button宣言を記述していては、長々としたコードになってしまうので、lambda式を使用してコード量を減らします。
この時のlambda式の記述の仕方をメモに残しておきます。

## lambda式

Python 公式ドキュメント

https://docs.python.org/ja/3/reference/expressions.html

> 6.14. ラムダ (lambda)
“`
lambda_expr ::= “lambda” [parameter_list] “:” expression
“`
>ラムダ式 (ラムダ形式とも呼ばれます) は無名関数を作成するのに使います。 式 lambda parameters: expression は関数オブジェクトになります。 この無名オブジェクトは以下に定義されている

元記事を表示

40代おっさんPythonを勉強する(データ解析,Pandas編②)

## 本記事について

この記事はプログラミング初学者の私が学んでいく中でわからない単語や概要を分かりやすくまとめたものです。
もし不正などありましたらコメントにてお知らせいただければ幸いです。

## 前回の記事

## データフレーム(DataFrame)オブジェクト

– データを操作するためのオブジェクト
– 高速で効率的に操作できる
– 多様なデータフォーマットと相互的に読み書きできる
– CSV, Excel, SQLデータベース, JSONなど
– データの集計やグラフの作成ができる

### データセット

– 気象庁([http://www.data.jma.go.jp/obd/stats/etrn/index.php](http://www.data.jma.go.jp/obd/stats/etrn/index.php))から福岡市の132年間の月別の[日平均気温](https://www.data.jma.go.jp/obd/stats/etrn/v

元記事を表示

OTHERカテゴリの最新記事