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

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

Python Gmailデータ取得

## 前提
以前作成した下記記事の環境からスタート

https://qiita.com/sh19982580/items/11a918da6d1a03ddf265

## GCP設定
クレデンシャルを作成
GCPのコンソール上で`APIとサービス` > `認証情報`
OAuth クライアント IDの作成
アプリケーションの種類:デスクトップ

→ JSONをダウンロードして、appと同じ階層に`client_id.json`として作成

## アクセス許可

gmail.py

import json
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
import httplib2

SCOPES = ‘https://www.googleapis.com/auth/gmail.readonly’
CLIENT_SECRET_FILE = ‘client_id.json’

元記事を表示

LSTM(RNN)で可変長な時系列と隠れ状態について調べてみた(Tensorflow2.0)

LSTMの挙動の理解です。
マニアックな処理をしたい場合の調査用です。(元はR2D2のburninの実装用)

# import

以下のimportはすでにされてるとして省略します。

“` python
import random
import numpy as np
import tensorflow as tf
import tensorflow.keras as keras
from tensorflow.keras import layers as kl
import pandas as pd
import matplotlib.pyplot as plt
“`

# 1.基本的なLSTM

0または1の時系列に対して合計を求めるデータセットを考えます。

![lstm.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/396150/0250e99f-6e9b-d8b5-35b0-49b26eea2219.png)

データセットを生成するコードは以下です。

“` py

元記事を表示

shell2httpを作ってHTTP経由でお手軽にCLIツールを実行する

[shell2http](https://github.com/msoap/shell2http)をsnapで入れると動かず、[Flask-Shell2HTTP](https://github.com/eshaan7/Flask-Shell2HTTP)はファイルを直接弄らないといけないのでPythonで作ってみました。

https://github.com/GitHub30/shell2http

[![Python](https://img.shields.io/pypi/pyversions/shell2http.svg)](https://badge.fury.io/py/shell2http)[![PyPI](https://badge.fury.io/py/shell2http.svg)](https://badge.fury.io/py/shell2http)
# インストール

“`bash
pip install shell2http
“`

# 使い方

http://localhost:8080/ をブラウザで開くことでコマンドが実行されます。8080は変更可

元記事を表示

PythonでGUIアプリを作りたい(Tkinter編)

PythonでGUIアプリを作るにはTkinterを使うと簡単です。
Tkinterが標準モジュールですのでインポートするだけで使用できます。
“`python
import tkinter as tk
“`
とりあえずウインドウを表示させてみます。
“`python
import tkinter as tk

# メインウィンドウの生成
root = tk.Tk()

# メインループ(ウインドウを表示する)
root.mainloop()
“`
![tkinter_gui_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2782030/a062097b-9800-021c-a53c-2ccb06360688.png)

何も表示されていませんがウインドウが表示されました。

元記事を表示

Djangoで開発するときCIで実行しておくと便利なコマンド5選

こんにちは。最近はDjangoを学ぶ初心者が増えてきましたね。
私はDjangoを10年近く使っているのですが、最近の盛り上がりを見て嬉しい限りです。
本記事は、Djangoの使い方を一通り覚えて次のステップに進みたい人向けに書きました。参考になれば幸いです。

## (まず前提として)CIは非常に便利、ぜひ使いましょう!
まず、Djangoの話の前にタイトルにある「CI」について説明します。
Djangoに限らず、開発初心者がチーム開発に参加する際、覚えておいてほしい言葉のひとつが「CI(Continuous Integration)」です。
CIは日本語だと「継続的インテグレーション」と呼ばれています。
チーム開発に参加してコードを書く様子を想像してみてください。当然それぞれのメンバーが独立してコードを書くので、「Aさんのコード」、「Bさんのコード」、「Cさんのコード」のように各メンバーが所有するコードがあちこちにあります。
「みんな担当分の実装が終わったね。ではリリースしよう!」となっても、このままではどれをリリースすればいいのか分かりません。各メンバーのコードをひとつに統合する

元記事を表示

Mkdocsの参考になりそうなサイト

https://zenn.dev/mebiusbox/articles/81d977a72cee01

元記事を表示

Python3エンジニア認定データ分析模試試験3回目 -間違えた問題-

獲得点数 600/1000点


正答率: 60.0 % ( 24問 / 40問 正解 )

“`python
ランダムフォレストについて説明している以下の文章のうち、正しい選択肢を選べ
A,他の機械学習アルゴリズムと比較すると、欠損値の穴埋めや標準化などのデータの前処理を必要としないアルゴリズムである。
“`
:::note info
ランダムフォレストは複数の学習器を用いていることから、
アンサンブル学習や集団学習ともいわれています。
近接代入を使用して欠落しているデータの置換をすることで、
欠損値の推定分析結果の精度を安定させることができます。
また, 単体での分析と比較して、過学習を抑えることができる特徴を持っています。
:::

“`python
Anacondaで特定のライブラリ(XXXX)のバージョンを更新する際に使用するコマンドとして正しいものを選べ

A,conda update XXXX
“`

“`python
R言語について説明している以下の文章のうち、正しいものを選べ

A,RにはC++を使うためのパッケージが存在し

元記事を表示

30代初心者インフラエンジニア Django 超入門

一日目


djangoのインストール

“`bat
pip install Django==3.0.4
//バージョン指定はしなくてもいい
“`
プロジェクトの作成

“`bat
django-admin startproject django_app
//django_appとゆうプロジェクト作成
“`
サーバーの起動
“`bat
cd django_app
python manage.py runserver
//ブラウザでhttp://localhost:8000
“`
![djang.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1614609/67c021b4-e6a0-000b-c2b1-036d70857c42.png)

元記事を表示

画像の一部を黒塗りでマスクする方法

Pythonでは、NumPyのスライスを使うことで、OpenCVで読み込んだ画像の一部分だけに処理を施すことができるらしい。
今回のサンプルでは、画像の「左下」と「右上」の黒塗りでマスクしてみる。

#### マスク処理

“`python
import numpy as np
import cv2

# ファイルから画像を読み込む
im = cv2.imread(“input2.jpg”)

# マスク画像の幅・高さ
w, h = 250, 90

# 左下か

元記事を表示

不均衡二値分類でundersampling + baggingは最適戦略か?

# はじめに

機械学習における不均衡二値分類において、undersampling + baggingがよい戦略だというのは様々なところで言われています。

– [[Python]不均衡データ分類問題に対する定番アプローチ:under sampling + baggingを実装したよ – Qiita](https://qiita.com/nekoumei/items/6448a86a8d255619c4f4)
– [Python: Under-sampling + Bagging なモデルを簡単に作れる K-Fold を実装してみた – CUBE SUGAR CONTAINER](https://blog.amedama.jp/entry/under-bagging-kfold)
– [不均衡データに適した学習モデルのアンサンブルによる生活習慣病の発症予測](https://www.sice.or.jp/org/i-sys/is48/paper/SICE-IS_2021_paper_42.pdf)

今回は、この戦略をweightオプションの設定やoversamplingなど他の戦略と

元記事を表示

PyCallを使ってRubyからPythonを実行する

# 実現したいこと
RubyでPythonのライブラリを使いたい

# 手順
## 1. pyenvを使ってる場合
“`shell
env PYTHON_CONFIGURE_OPTS=’–enable-shared’ pyenv install 3.9.12
“`

https://pip.pypa.io/en/stable/cli/pip_install/#install-find-links

## 2. 必要なライブラリがあればインストール
“`shell
pip install package
“`
または
“`shell
pip install requirements.txt
“`

## 3. Pycallを追加
“`ruby
gem ‘pycall’
“`
“`shell
bundle install
“`

または
“`shell
gem install pycall
“`

https://github.com/mrkn/pycall.rb/#installation

## 4. PyCallをロード
“`ruby
require ‘p

元記事を表示

pip install でファイルを指定してパッケージをインストールする方法

# 実現したいこと
`pip install パッケージ名 `ではなく、ファイルを指定してパッケージをインストールしたい。

# 結論
ローカルにあるファイルを指定する場合
“`shell
pip install foo.tar.gz
“`

URLを指定してインストールする場合
“`shell
pip install https://github.com/package/foo.tar.gz
“`

`requirements.txt`に書く場合はこんな感じ
“`text
-f https://github.com/package/foo.tar.gz
“`

# ドキュメント
https://pip.pypa.io/en/stable/cli/pip_install/#install-find-links

# バージョン情報
“`shell
$ pip –version
pip 22.0.4
“`

元記事を表示

VSCodeのなかNotebookのなかでMatplotlibアニメーションを動かしてみた

## 解決したい問題

[「ゼロから作るDeep Learning」斎藤康毅著 O’Reilly刊](https://www.oreilly.co.jp/books/9784873117584/)の「5.6 Affine/Softmaxレイヤの実装」を読んでいて引っかかった。「Affine変換って何だっけ?」 Qiitaで *アフィン変換* を検索したら下記の記事を見つけた。

– [完全に理解するアフィン変換 @koshain2](https://qiita.com/koshian2/items/c133e2e10c261b8646bf)

とてもためになりそうな記事だが、Affine変換の学習を始める前に僕の関心は脇道に逸れてしまった。というのも、この記事に次のようなアニメーションが貼ってあったから。

![shiftX](https://kazurayam.github.io/Matplotlib_animation_with_Notebook_in_VSCode/images/shiftX.gif)

このアニメーションをどうやって作るのか、作り方を知りたい!と思った。記事にP

元記事を表示

LINE Messaging API+Ngrok+Python で実験的にLINEボットを開発してみよう Part3会話盛りだくさん編

# 0 おさらい
[Part2](https://qiita.com/Antareskkudo/items/4d70c6cc0f8dfd18e82b)では[Part1](https://qiita.com/Antareskkudo/items/bedd28326f57a5d80092)で作成したプログラムを実行する手順についてお話しし、簡単な会話をするプログラムを作成しました。また、会話をさらに拡大するためのアプローチ方法についても探りました。
今回はさらに会話のレパートリーを増やしより自然な会話に近づけていきます。また、外部プログラムを使った例を紹介し応用についても説明していきます。

# 1 CSVファイルの編集
今回はPart1で作成したディレクトリ構成を元に説明していきます。まだ作成されていない方はPart1を参照して作成してみてください。
最初はメッセージとそれに返信する返信メッセージのパターンを、表形式のファイルに作成します。では前回同様にRaspberry Piを操作できるようにVscodeを開いてリモートアクセスしましょう。

アクセスできたらdataフォルダ内のact

元記事を表示

SuperResolutionのStateOfArt SwinIR

# 画像をきれいにアップスケール

SwinIRを使います。

https://github.com/JingyunLiang/SwinIR.git

元画像

![spencer-chow-6W-MS6havNk-unsplash (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/5675cf27-0b66-3f58-e9f4-9f789e64d7a5.jpeg)

結果(4倍スケール)

![spencer-chow-6W-MS6havNk-unsplash (1)_SwinIR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/abdb2655-4122-02d1-00cf-0fe4e54a3380.png)

# 使い方

・SwinIRのリポジトリをクローン、
・事前トレーニング済みモデルをダウンロード、
・画像フォルダを指定して実行します。

“`shell
git clone

元記事を表示

GoogleDrive のファイル操作(アップロード/ダウンロード)を自動化する

Pythonを使って「GoogleDriveへファイルアップロード」「GoogleDriveからのファイルダウンロード」を実現する手順を解説します。

## 概要

– GoogleDriveへ自動アクセスするため`Google Cloud project`を登録します。
– GoogleDriveへログインし、認証コードを取得します。
– 認証コードからアクセストークンを取得します。
– アクセストークンを利用して[Google Drive API](https://developers.google.com/drive/api)により「GoogleDriveへのファイルアップロード」「GoogleDriveからのファイルダウンロード」を実現します。

## GoogleDriveへ自動アクセスするため`Google Cloud project`を登録

– 下記手順を参考に`Google Cloud project`を登録します。
[Create a Google Cloud project](https://developers.google.com/workspace/gu

元記事を表示

【Selenium】headlessで実行した際に要素が見付かれないエラーについて

Seleniumでスクレイピングをしている際に、今まではブラウザを起動して実行されてるの見てましたが、
プログラムも正常に動くようになってきたので、
もうそろブラウザ起動せずに実行できるようにしようと思い、headlessモードに切り替えましたが、
“`selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element“`
が出てきてしまったので、その対処方法をまとめます。

## 原因

まず、ブラウザ起動するのと、headlessで実行するでは、処理時間がheadlessの方が早いです。

基本的な原因は対象要素がまだ出てきてないのに実行されてしまっているのが原因と考えられます。

## 対策

暗黙的な待機を入れることで要素が表示されるまでの、待機時間を入れることで対処できるようになります。

以下例です。

“`python
from selenium import webdriver
from webdriver_manager.chr

元記事を表示

[IronPython] PowerPointの図形描画をコンソールから自在に行う

## はじめに
業務にて、Word文書上に複数のタイムチャートを作成する案件が発生。
(↓↓↓ こんなヤツを何通りか作成。)
![タイムチャート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209885/a5a62343-be07-d691-bfbd-781b2944c69a.png)
直線・折れ線・矩形・テキストボックスの組み合わせですが、さすがにマウスでの描画はあり得ないのでIronPythonで描画してみました。

折角なので、Officeへの図形描画の一手法として、備忘録を兼ねて投稿します。
本稿では、Wordよりも需要がありそうなPowerPointへの図形描画を題材にしています。

描画位置・サイズの単位の違いや、同名のオブジェクトでも若干の差異があったりと、Officeアプリケーションごとに多少の違いはありますが、基本的にはWordやExcelでも同様に操作できます。

VBAで図形描画を扱った経験があれば、内容はわかりやすいかと思います。

### 作業環境
Windows 11 Pr

元記事を表示

matplotlibのsubplotsのcolorbarを共有する

## 動機

以下のようなcolorbarを共有したグラフを作成したいものとします.

![subplots-with-cbar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355593/2b6055e3-96cc-70e2-7053-f2d8b5752e0a.png)

## 結論
以下のようなコードを利用します.
contourfでcolorbarを生成して最終的にそれをfigに加える形で再現します.
注意点としては,colorbarのスケールが各々異なる場合であっても最終的に表示されるcolorbarはfor文の最後にplotされたものに準拠することです.

“`python
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams[“font.family”] = “Times New Roman”
plt.rcParams[“font.size”] = 14
plt.rcParams[‘mathtext.fonts

元記事を表示

Slackの過去投稿をダウンロードする方法(Python Slack SDK版)

2022年9月1日以降、Slackのフリープランのユーザーは、90日が経過したメッセージが非表示となるということが[発表](https://slack.com/intl/ja-jp/help/articles/7050776459923-%E3%83%97%E3%83%AD%E3%83%97%E3%83%A9%E3%83%B3%E3%81%AE%E6%96%99%E9%87%91%E6%94%B9%E5%AE%9A%E3%81%A8%E3%83%95%E3%83%AA%E3%83%BC%E3%83%97%E3%83%A9%E3%83%B3%E3%81%AE%E6%9C%80%E6%96%B0%E6%83%85%E5%A0%B1)されました。非表示になる前にデータを退避したい時、フリープラン含めて提供されている[エクスポート機能](https://slack.com/intl/ja-jp/help/articles/201658943-%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%AE%E3%

元記事を表示

OTHERカテゴリの最新記事