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

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

Python PyAutoGUIを使ってスクリーンショット

# Python PyAutoGUIを使ってスクリーンショット

## PyAutoGUIをインストール

https://github.com/asweigart/pyautogui

“`
pip install pyautogui
“`

## スクリーンショット

“`
import pyautogui

def main():
# 全体
screenshot = pyautogui.screenshot()
screenshot.save(“/tmp/samp1.png”)
  
# 範囲指定
screenshot = pyautogui.screenshot(region=(100, 200, 1500, 875))
screenshot.save(“/tmp/samp2.png”)

if __name__ == “__main__”:
main()
“`

## 結果

*全体*
![samp1.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

Python PyAutoGUIを使って自動マウス操作

# Python PyAutoGUIを使って自動マウス操作

## PyAutoGUIをインストール

https://github.com/asweigart/pyautogui

“`
pip install pyautogui
“`

## マウス移動

### 相対座標移動

現在の場所から指定したピクセル分、マウスを動かす方法
`duration=5`は5秒かけて移動
tweenも設定可能
easeOutQuad・・・最初を遅く、最後を早く
easeInOutQuad・・・最初と最後を早く、道中は遅く
easeInBounce・・・最後に跳ね返る
easeInElastic・・・最後にゴムバンドのような動き

“`Python
import pyautogui

def sample1():
p = pyautogui.position()
print(p)
pyautogui.moveRel(500, 500, duration=10, tween=pyautogui.easeOutQuad)
p = pyautogui.posit

元記事を表示

探索的データ解析(EDA)のためのautovizを試してみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回は、探索的データ解析(EDA)の一つであるautovizを試してみた。

##はじめに
探索的データ解析(EDA:Exploratory data analysis)は、機械学習などのデータ分析業務を実施する際に、データの理解を目的として実施する作業を指します。
つまり、現場の問題を解決する際に、どのようなデータセットを扱っているのか、どのような状況にあるのかを、しっかりと理解するのが重要であり、探索的データ解析は上記を目的とした作業です。
過去には下記ライブラリーを使用した方法を整理しておりますので、参考にしてください。
* [Pandas-profiling](https://qiita.com/DS27/items/033193b452a17739b952)
* [sweetviz](https://qiita.com/DS27/items/178416f5ccf3a86db4e6)

##autoviz実行例
今回は、探索的データ解析ツールの一つである「autoviz」を使ってみようと思います。

今回もUCI M

元記事を表示

Pythonのクラスを理解する【備忘録】

Pythonのクラスを学習したんで、その備忘録をつけていく

## クラスの書き順

1. `class クラス名:` でクラスを定義する
2. `def __init__(self,引数)` で初期設定?設計書?を定義する
3. `self.属性名` で属性(プロパティ)を与えていく

### クラスの書き方例

“`python
class Persson00:
def __init__(self,name,age):
self.name = name
self.age = age
“`
これで実行すると、クラスが定義される。
まだ定義しただけなので、特に何も起きない。
なので、定義したクラスを使える処理をしていく。

## インスタンスの作り方

1. `インスタンス名 = クラス名(引数)` でインスタンスを定義。
2. `インスタンス名.属性名` でインスタンスを実行できる。

### インスタンスの実行例-その1-

“`python
#上で書いたクラスを使ってます

mittsu00 = Persson00(“みっつ”

元記事を表示

今日からPYTHONやめます

これまでPython一辺倒でやってきましたが、いろいろあって辞めることにします。

# 理由
* flask,djangoは十分に使えるスキルを得ており、いつでも最終手段を講じれるから
→ これまでのEXCEL+VBA+ACCESSの置き換えとして、完全にPandas+SQLAlchemy+WEBが使えるようになったからです

* DeepLearningのためにPython一択で考えてきたが、AIフレームーワークという枠組みの中でのCording自体は、非常に単純なライブラリコールに過ぎず、その程度のPythonであれば、読み書き自在のレベルに達したため

* WEB-APP開発においては、Pythonはフロントエンドには成れず、結局はHTML+CSS+JSの習得が必須なため → バックエンドがREST-API開発に特化されていく現状では、Python一択の意味が無くなってきている。

* VUE.JSによるWEBフレームワークの充実により、PythonのWEBフレームワークのニーズは、ますます減ってくると予想され、いっそうJavaScriptのスキルが重要になってきている。

*

元記事を表示

GNU Radioを使用した周波数変調方式(FM)レシーバのデザイン

入門ガイド(https://reference.digilentinc.com/reference/programmable-logic/b205mini/getting-started)ではGNU Radioを使用したFMラジオレシーバのデザインについて簡単に順を追って説明します。ソフトウェアドライバーとGNUラジオのLinux OSへのインストール方法、リアルタイムDiscrete Fourier Transform(DFT:離散フーリエ変換)の実行例、FMラジオレシーバをゼロから作成する方法についてそれぞれ学ぶことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/616703/0ca6085d-5b23-dc8b-693f-86ac20dacf80.png)

FMレシーバは変調信号(つまりVHF帯域の電波)の入力から20 Hz〜20 kHzの幅のオリジナルの音声信号を生成します。まず初めに、ターミナルでGNU Radio Companionが開きます。それからSamp

元記事を表示

Python: PyShorteners で短縮URLを簡単に作る

https://dev.to/theinsightfulcoder/create-your-very-own-url-shortener-expander-using-python-4nfd

PyShorteners というやつで非常に簡単にURL短縮ができるらしい、というメモ。
[記事の筆者のソースはこちら](https://github.com/SaiAshish-Konchada/Python-Projects-for-Beginners/tree/main/URL%20Shortener%20%26%20Expander)。

## PyShortenersとは

https://pyshorteners.readthedocs.io/en/latest/
`pip install pyshorteners` して使う。

>pyshortenersは、最も有名なURL Shortenersを使ってURLを短縮したり拡張したりするのを助けるPythonライブラリです。pyshortenersを使うと、短いURLを生成したり、別のURLを拡張したりすることが、次のように

元記事を表示

JuliaからPyCall.jlを使ってPythonのModellerパッケージを動かす

最近プログラミング言語のJuliaを勉強し始めていて、JuliaからPyCall.jlを使ってPythonのModellerをimportして使えたらいいな〜と思ったので、その時の作業記録を残します。また、`pycall`や`pyimport`を使う必要性があったことについても述べます。

Modellerのサンプルスクリプトは公式のものを含め色々存在していますが、ここでは私のMDシミュレーションのチュートリアル記事である[MDシミュレーションのチュートリアル〜PDB: 1LKEの場合〜](https://qiita.com/Ag_smith/items/2fe20010915ace67ed0a)で使われている`align.py`をJuliaから使えるようにしてみます。動作に必要な`1LKE_truncated.pdb`, `alignment.ali`は事前に用意しておきます。

## 動作環境

– Julia 1.5.3
– Conda v1.5.1
– PyCall v1.92.2

## 元となるpythonのコード

以下の`align.py`を題材にします

元記事を表示

CSVファイルでPythonからC++への行列データの受け渡し

#はじめに
Pythonで計算した結果の4×3の行列を,C++から読みたいと思い、その方法をまとめました。

#書き込み(Python)

“`Python:write.py
import csv

data = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]

with open(‘test.csv’, ‘w’) as file:
writer = csv.writer(file, lineterminator=’\n’)
writer.writerows(data)

“`

#読み込み(C++)

“`c++:read.cpp
#include
#include
#include
#include
#include

std::vector split(std::string& input, char delimiter)
{
std::istringstream stream(input);
std::s

元記事を表示

UbuntuにCUDA, Python対応したdlibを入れる

# 概要
下記の良記事とやってる内容はほぼ同じですが、Ubuntu & pip 限定で少しだけ手順を簡略化。

https://qiita.com/FXsimone/items/4864ff695d7599491ca8

違いとしては

+ CUDA のインストールは “`apt“` でやる
+ dlib のコンパイルは “`pip“` でやる
+ gcc-8 を使う (cuDNN8 が gcc-9 以上に対応してなかったため)

# 依存パッケージのインストール
まずは

“`
sudo apt install nvidia-cuda-toolkit cmake gcc-8
“`

次に、cuDNN は “`apt“` で導入できないので、[公式サイト](https://developer.nvidia.com/rdp/cudnn-archive)から入手する。上で入れた nvidia-cuda-toolkit のバージョンを確認し、それに対応した deb パッケージをダウンロードしてインストールする。例:

“`
sudo dpkg -i libcudnn8_8.

元記事を表示

日時でラグ特徴量を作る(日付でシフトと集計)

テーブルデータにおける時系列予測では, ラグ特徴量 (shift & rolling)を作る事がよくある.
これまでは, 単純に行数でシフトすればよい場合のみを扱ってきたが, 日付でシフトして日付で集計する需要が出てきた.
これが案外苦労したのでメモとして残しておく.

次のデータを例に説明する.

“`python
df = pd.DataFrame({
“date”: [“2021-04-01 10:04”, “2021-04-01 12:03”, “2021-04-02 14:40”, “2021-04-03 2:01”
, “2021-04-05 5:02”, “2021-04-07 1:16”, “2021-04-10 11:20”, “2021-04-14 23:30”],
“target”: [1,5,7,2,3,7,9,3],
})
df[“date”]=pd.to_datetime(df[“date”])
“`

![table.png](https://qiita-image-store.s

元記事を表示

経済は難しいが役に立つ ~経済インデックスを集めてみよう

0. 何を使う
————-

Language: Python
IDE: repl.it (https://replit.com/)
DB: pyrebase (flask + firebase)
framework: flask

1. 環境設定
————-
https://replit.com/ 
から言語をpythonに設定して新しいreplを作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1070645/3e24b4f0-6053-212e-4dde-b8d7fc6e217f.png)

2. パッケージインストール
————-
パッケージアイコンをクリックして requests (Python HTTP for Humans)をクリックしてインストールする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1070645/0e

元記事を表示

【PyTorch】VAE + Wasserstein-GAN

今回はいつも以上にPyTorchよくわからん!けどなんとか動かす!感が満載です。

#目次
飛べます
・[今回はVAE+GAN](#今回はVAE+GAN)
・[GAN](#GAN)
 - [Wasserstein-Gan(W-GAN)](###Wasserstein-Gan(W-GAN))
 - [識別器の学習](###識別器の学習)
 - [生成器の学習](###生成器の学習)
 - [超ポイント1](###超ポイント1)
 - [超じゃないけどまぁまぁポイント](###超じゃないけどまぁまぁポイント)
・[実装](#実装しまーす)
 - [パラメータと最適化関数の設定](###パラメータと最適化関数の設定)
 - [FeedForward](###FeedForward)
 - [目的関数](###目的関数)
 - [識別器の学習](###識別器の学習)
 - [VAEの学習](###VAEの学習)
 - [敵対学習](###敵対学習)
・[超ポイント2](#超ポイント2)
・[超ポイント3](#超ポイント3)
・[動かしてみた](#動かしてみた)

#今回はVAE + GAN

元記事を表示

tqdmでメモリリークにハマった話(機械学習)

# 事件

PytorchのResNetモデルを使って画像の訓練をしていたら、エポックのループ毎に、CPU / GPUメモリ両方の使用率がガンガン上がっていく事件に遭遇した。

# 解決方法(tqdmの使い方)

tqdmは、進捗をプログレスバーで表示してくれる便利なライブラリだが、そこに落とし穴があった。

“` python
import tqdm

# 訓練画像の data loader をループを回す
for x in tqdm(loader):
y = model(x)
“`

このような書き方をすると、tqdmがloaderを参照したままになり、メモリが解放されない。

正解はこれ。

“` python
tqdm(loader) # ダメ
enumerate(tqdm(loader)) # ダメ
tqdm(enumerate(loader)) # OK
“`

enumerateでラッパーしてからtqdmを噛ませるのが正解。

更にイテレータの長さを渡して、

“` python
tqdm(enumerate(loader)

元記事を表示

Dockerfileにmatplotlibで日本語表記ができる設定を書いた

## はじめに
docker環境でwebアプリ開発をしていたのですが、そこに図を表示してみたくなってmatplotlibを入れました。しかしなぜか日本語表記が出来なくて手こずったので、その記録として残します。
他の記事をいろいろ探しましたが、jupyterのdockerイメージを使っているものが多く、ubuntuを使っているものが見つからなかったので、誰かの役に立てば嬉しいです。

参考にさせていただいた記事:
[Docker環境のPythonで日本語を使用できるように](https://qiita.com/e4Rl97/items/2b940b4354670ead3eb9)

## Dockerfile

“`dockerfile:dockerfile
FROM ubuntu:18.04
RUN apt-get -y update \
&& apt-get -y upgrade \
&& apt-get install -y locales curl python3-distutils \
&& apt-get install -y unzip\
&

元記事を表示

linebotとyoutube_dlとpydriveを連携させてみた

#Linebotの活用法を考える
youtubeなどの動画をダウンロードするときなにつかってますか?
スマホからだとダウンロードしにくいし、広告多くて…ということでLineからダウンロードするbotを作ってみました。
くそ適当なコードです。
※著作権等に配慮してください。
※技術目的であり、違法DLなどの助長目的ではありません。

##必要なもの
PyDrive
google-api-python-client
youtube-dl
ffmpeg
httplib
mutagen
もしかしたらまだ必要なのあるかも。。

##youtueから動画を取得する
youtubeから動画を取得するにはyoutube_dlというものを使用します。
>https://github.com/ytdl-org/youtube-dl

こちらを使い適当にコードを書きます。

“`python:hoge.py
url = “hogehoge.jp”
outtmpl = ‘%(title)s.%(ext)s’
down_dir = “download/”
os.makedirs(down_dir, exi

元記事を表示

Pythonで定数を宣言したい(n番煎じ)

# TL;DR
– [1] Constantクラスを定義する(下記のコードコピペ).

“`Python
class ConstantError(Exception):
“””Constantクラスの例外”””
pass

class MetaConstant(type):
“””Constantクラスのメタクラス”””

# __init__関数置き換え用の関数
def _meta__init__(self, *args, **kwargs):
raise ConstantError(“Can’t make instance of Constant class”)

def __new__(cls, classname, bases, dict):
# 定数クラスのインスタンス生成を禁止
dict[“__init__”] = cls._meta__init__

# 継承時の定数再定義を禁止
const_names = [name for name in

元記事を表示

【Python】 Worksheet.column_dimensions列幅(行の高さ)を調整する。

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、罫線に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

今回は前回の復習(日報作成)から約一か月ということで(適当)
いままでの勉強内容を含め再度の復習もかねて、表に罫線を引きたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927441/e85180af-2ad6-1e4f-c2a9-7a3e2f9f3e99.png)

上記のようなブック「商品リストを」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927441/8d166914-b337-7191-6d7f-eb4ec0b563b9.png)

この様な表に変更したいです。

# Worksheet.column_dimensions

“`python
# 列の幅を

元記事を表示

【個人開発】ライブのタイムスケジュールを自動作成するサービスを作りました

##概要
こんにちは。
この度、**ライブイベントのタイムテーブルを自動で作成するサービス**を開発しました。

↓作ったサービス
**[Stagio(ステージオ)](https://www.stagio.jp)**

OTHERカテゴリの最新記事