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

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

Pythonでファイル名一覧を取得

#### 任意のフォルダ内のファイル名とフォルダ名を全取得
sudoフォルダ内のファイル名とフォルダ名を取得したいときは,
“`python:
import os
file_names = os.listdir(‘sudo/’)
“`
でlistで返ってくる.

#### 任意のフォルダ内の任意の拡張子のついたファイル名を全取得
フォルダを含めたくない時,あるいは拡張子を指定したい場合は,

“`python:
import glob
file_paths = os.listdir(‘sudo/*.wav’)
“`
で欲しい拡張子のついているもののみをlistで取得できる.こちらはファイル名だけでなく相対パスも含まれることに注意.

元記事を表示

#pythonの特徴量選択 分散とベルヌーイ分布について

#pythonの特徴量選択について調べてみました

https://qiita.com/FukuharaYohei/items/db88a8f4c4310afb5a0d

@FukuharaYohei様が作成された上記記事のFilter Methodについて自分なりに調べてみました

手法
1. Filter Method
Filter Methodは統計的な手法(分散やχ二乗検定など)で特徴量の評価・選択をします。他の手法に比べると計算量が少なく、最初に足切りで実施するものだと考えています(経験浅いのであまり根拠なし)。

1.1. 低分散変数の削除
分散が低ければ、説明変数としての意味ないと考え特徴から削除する方法です。VarianceThreshold関数を使います。
今回の例では分散0としており、まったく変動していない特徴を対象とします。ベルヌーイ分布の分散であるp(1 − p)を使うのもありかと思います。
分散0はPandasのget_dummies関数でオプションdummy_naを使った時に出てしまいました。欠損値がある特徴があったため、get_dummies関数を使った

元記事を表示

python 備忘録

## try catch
### 例外全て
“`
def sample():
try:
raise Exception
except:
traceback.print_exc()
print(‘Error’)
“`

### 特定の例外+例外全て
“`
def divide(a, b):
try:
#raise Exception
raise ValueError(“error!”)

except ValueError as e:
print(‘ValueError:’, e)
except:
traceback.print_exc()
print(‘Error’)
“`
### ポイント
|項目|説明|備考|
|—-|—-|—-|
|traceback.print_exc()|エラー時のスタックトレースを表示する||

元記事を表示

mplfinanceでドル円(USDJPY)の年足チャートを描く

Pythonを使って以下のようなローソク足チャートを描画することができる。最近は円安が話題なので、このエントリではやや見慣れないドル円(USDJPY)の「年足」を描画してみよう。

![candlestick_mpf_candle.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/697094/d7d595ba-4e07-e588-2b5b-d5766cf9a245.png)

今回用いる「[**mplfinance**](https://github.com/matplotlib/mplfinance)」は金融系の画像操作に特化したライブラリで、`pip install mplfinance` で導入できる。

ドル円の価格データ `USDJPY_1972_2022.csv` をpandasデータフレームとして読み込みmplfinanceのplot関数に渡す。(csvの中身は後で示す)

“`py:candlestick.py
import pandas as pd
import mplfinance

元記事を表示

AutoTrainで文章要約

# AutoTrain???とは

ノーコードでテキスト分類や要約などがstate-of-the-artできるサービスです。AutoNLPだとググラビリティが低かったので名称が変わったのだと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/742fcf02-89b3-df7f-ca59-c9170151eb18.png)

https://huggingface.co/autotrain

# データ準備

ハウツー系の文章を要約しようと思います。

https://www.wikihow.jp/

ハウツー系の文章(inputs)とその要約(targets)があります。
https://www.wikihow.jp/蛇に噛まれた時の対処
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/bb1ba23e-88d4-281f-7b32-eea010102e

元記事を表示

pythonで複数のPDFファイルを一括で保護解除

複数のPDFファイルの保護を一括で解除するツールを作成したので、ソース公開します。
(python初心者がとりあえず動くもの作っただけなので綺麗なソースではありませんが…)

## 1.ツール作成を思い立った背景
* 公式HPからダウンロードできる国家試験の過去問PDFは大抵の場合が保護付き。
* 学習過程でマーカーを付けたり、ファイル結合や編集を行いたい場面が多々あり、保護が邪魔:worried:

## 2.ツールの目的
* 開催回、科目、問題/解答毎に別ファイルになっているPDFの保護解除を一括で行う
* 1ファイルずつ手作業で保護解除はしたくない:tired_face:

# 3.ツールの仕様
* 実行ツールと同じディレクトリ内のPFDファイルを全て保護解除して保存する
* 動作環境はWindows10
* pythonで作成

## 3.1 ツール実行
1. ツール(exeファイル)を保護解除したいPDFファイルと同一ディレクトリに格納
![before_bulkUnlockPDF.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

python3 -m http.serverをCORSにする【Access-Control-Allow-Origin】

“`bash
echo “import sys
from http.server import HTTPServer, SimpleHTTPRequestHandler, test

class CORSRequestHandler (SimpleHTTPRequestHandler):
def end_headers (self):
self.send_header(‘Access-Control-Allow-Origin’, ‘*’)
SimpleHTTPRequestHandler.end_headers(self)

if __name__ == ‘__main__’:
test(CORSRequestHandler, HTTPServer, port=int(sys.argv[1]) if len(sys.argv) > 1 else 8000)” | python3 — – 8000
“`

or

“`bash
echo -e “import sys\nfrom http.server import HTTPServ

元記事を表示

AWS Cloud9でPython基礎~ファイルの読み書き

2022/4/6(水)に行われたAPNパートナー限定セミナー「Pythonの基礎から学ぶ!サーバーレス開発はじめの一歩」で学んだPython部分の復習。

# 1.AWS Cloud9セットアップ
Cloud9を起動。適当に名前を付けて他はすべてデフォルト値でCloud9を起動する。

# 2.ファイルの読み書き

## 2-1.Pythonでファイルを読み込む

組み込み関数[open()](https://docs.python.org/ja/3/library/functions.html#open)と[with文](https://docs.python.org/ja/3/reference/compound_stmts.html#with)を使う。

Cloud9上で、以下2ファイルを作成する。

“`py:input_text_file.py
def open_input(fileA):
with open(fileA, ‘r’) as f:
textA = f.read() # .read()メソッドを使ってファイルの内容を読み込み

元記事を表示

LSTMで分子生成入門

[「VAEとGANで分子生成入門」](https://qiita.com/maskot1977/items/77008b9737218fa1c21d)の続編です。今度は 長・短期記憶 LSTM (Long Short Term Memory) ネットワークで分子生成モデルを作ったというお話です。ただし、あくまで入門なので、生成された分子が目的の物性を持ってるかどうかは全く考えません。

# RDKit

生成した文字列がSMILESとして成立するかどうかを判定する必要があるため、化学情報学系ライブラリ RDKit をインストールして用います。

“`python
%%time
!pip install git+https://github.com/maskot1977/rdkit_installer.git
from rdkit_installer import install
install.from_miniconda(rdkit_version=”2020.09.1″)
“`

Collecting git+https://github.com/maskot197

元記事を表示

docker compose で起動したコンテナ内での pytest 実行時に breakpoint で止める

# はじめに
web sever の実行時に breakpoint で止める方法を書いた記事はたくさん見かけます。
しかし、dokcer compose したコンテナ内での pytest 実行時に breakpoint で止める記事は見かけず、苦労したので書きます。
(test code に break point を置いた場合の話です)

# 確認した環境
– macOS Big Sur 11.6.1
– Visual Studio Code Version: 1.59.0
– Docker Desktop 4.3.1.
– Docker Engine v20.10.11

# 実践
## ローカルでのステップ
– VsCodeからコンテナに attach するための extension を install する
– https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
– docker compose up でアプリケーションの dev コンテナ を起動

元記事を表示

LINEのトーク履歴を解析して送信文字数などを数える ver2022【Python】

# 概要
LINEの投稿文字数(など)をカウントするプログラムを書きました。
[筆者の過去記事](https://qiita.com/shimajiroxyz/items/9a06a086ee9730ee3d55)とやろうとしていることは同じですが、以下の改良を加えました。

* 正規表現を使って生データの分割処理を簡潔かつ厳密にした
* ノート作成や動画投稿など過去記事でスルーしていたアクションの回数も取得できるようにした
* グラフ化(可視化)するコードを書いた

# 方針

LINEのトーク履歴のログはアプリの設定から出力可能です

参考:[LINEでトーク履歴をKeepに保存・メールで送信](https://www.copytrans.jp/support/line%E3%81%AE%E3%83%88%E3%83%BC%E3%82%AF%E5%B1%A5%E6%AD%B4%E3%82%92%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/#line

元記事を表示

機械学習における各種分類の手法覚書

## 機械学習における各種分類手法
今年の初めにオンライン学習のCOURSERAで機械学習のフレームワークである、TensorFlow、scikit-learnを習得したのですが、折角なので各種オープンデータを使った機械学習の各種分類手法の比較ができるコードを作成いたしました。
実際ある課題に対し実力を検証してみたので、どんなイメージの課題かを紹介したいと思います。
### コード詳細
#### 使用したデータセット
* CIFAR-10
* SVHN(Street View House Numbers)※別のプログラムで前処理しております。
* Fashion-MNINS
* MNIST
* Kaggle Cats & Dogs ※別のプログラムで前処理しております。
#### 今回使用した手法
* TensorFlow(CNN)
* ロジスティック回帰
* サポートベクターマシン(SVM)
* 決定木
* ランダムフォレスト

#### コード
リンクからファイルとフォルダをダウンロードして下さい。
「アクセス権が必要です」と表示された場合はgoogleからログ

元記事を表示

S3のファイルをpython boto3でダウンロード

# 概要
首題の通りです。備忘録として記載しています。
他にスマートなやり方がありそうなのであくまで参考程度に。

# 環境
ubuntu 20.04
ubuntu内のDocker上にpython3.10のコンテナを立ち上げ実行

# コード
予めAWSのIAMでaws_access_key_idとaws_secret_access_keyを準備しておく

“`
# ライブラリをインストールしておく
pip install boto3
pip install awscli
“`

“`py
import boto3

s3 = boto3.resource(‘s3′,
aws_access_key_id=’XXXXXXXXXXXXXXXXX’,
aws_secret_access_key=’YYYYYYYYYYYYYYYYYYYYYYY’,
region_name=’ap-northeast-1′)

bucket = s3.Bucket(‘作成済みのバケット

元記事を表示

Windows向けPython & Visual Studio Codeセットアップ スクリプト

[こちらのリポジトリ](https://github.com/knmaki/python-setup-scripts)の転記。

# 1. 概要
## 1.1. こんな人向け
– 社内でPythonを広めたいけど、1台ずつ環境構築するのがめんどい。
– 一発で色々インストールできるAnacondaは、[有償化](https://qiita.com/tfukumori/items/f8fc2c53077b234384fc)したため使えない。
– インストール対象のPCがインターネットにつながってないため、`pip install`が使えない。
– 利用者のPython/VSCode環境を揃えたい。
– 一度なんとか環境構築したけど、更新のために複数端末でまた同じ作業をするのは萎える(自分でやってくれないし)。

そんな感じで困った人向けのスクリプト。

## 1.2. 前提
このツールは以下の環境で利用を前提とする:

– OSはWindows
– インストール先はスタンドアローンPC(インターネットにつながっていない/非ブラウザ通信が遮断)
– 情シスからスタンドアローンPCでのア

元記事を表示

FolderDictというディレクトリ構造的にオブジェクトを保持できる辞書を作った話

なんだかんだディレクトリチックにオブジェクト管理したくなりますよね。ディレクトリ構造って使い慣れてて便利ですし。ということでこの前見つけた[PathDict](https://qiita.com/GesonAnko/items/4ac94618e469fc6c6335)を使ってチャチャっと作りました。(いろんな人が似たようなの作りまくっていますが)
PyPIに上げてpip でインストールできるようにしたので使ってみてください。

### URL
PyPI:https://pypi.org/project/folder-dict/
Github: https://github.com/Geson-anko/folder_dict

以下は和訳したREADMEとそこに書き足りなかったことです。
# インストール
Pythonのバージョンは3.9以降に対応しています。
“`
pip install folder-dict
“`
それかリポジトリをクローンして
“`
pip install -e .
“`

# 使い方
### いい感じの例
“`py
from folder_dict

元記事を表示

OpenCV-Pythonで画像処理 ~二値化~

# 1. はじめに

最近OpenCVでの画像処理を始めるようになったので、
勉強したことを覚書として、残していきたいと思っています。

# 2. 画像作成

今回わかりやすいように0~255にグラデーションする参考画像を作成しました。

“`python
import cv2
import numpy as np

# グラデーション画像を作成
img = np.arange(256,dtype=’uint8′).reshape(1,-1)
for i in range(255):
img = np.append(img, np.arange(256, dtype=’uint8′).reshape(1,-1), axis=0)

# 画像を保存
cv2.imwrite(‘grad.png’, img)
“`

![grad.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2048607/34df5361-1307-f599-0298-c2e9bd352b95.png)

# 3. 単純な閾値処

元記事を表示

botter専用Cloud9環境の複製手順(github/talib)

# 新botの稼働環境を作成する時のメモ
– cloud9の環境をそのまま複製したかったけどあまりいいやり方が見つからなかったので、普通に新規で作成して全く同じ環境を構築できるように手順をマニュアル化する。
– やろうと思えばEBSを複製して作成したcloud9環境のEBSと入れ替えるとかもできるっぽいけどSSHとかの問題で全く同じ環境になるかどうかは怪しい(未検証)

# 手順
## cloud9を作成する
– マシンスペックとかは同じ設定を選べばいい
– 基本デフォルト設定でOK

## github連携
### gitを導入
~~~
sudo yum -y update
sudo yum -y install git
git config –global user.name “USER_NAME”
git config –global user.email EMAIL_ADDRESS
~~~
参考元URL

https://niki12260714.hatenablog.com/entry/2018/04/20/092339

### リポジトリをcloneする

元記事を表示

Windows PC へのPython3 導入手順

# 1.はじめに

Windows10 の環境に Python3 を導入します。

※ Mac PCへの Python3 導入手順は、以下リンク先をご参照ください。

・Qiita:Mac PC へのPython3 導入手順
https://qiita.com/Haruka-Ogawa/items/b1bf5ad9b28d44702a64

# 2. Python3 導入

### ① ダウンロード

まず、公式サイトからPythonを ダウンロードします。
最新版は以下リンク先を開くと取得することができます。

・Python:Download the latest version for Windows
https://www.python.org/downloads/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174250/0a081064-85f4-1ebe-cfdb-7374cd5f5d93.png)

今回は Python **3.10.4** をダウンロードしま

元記事を表示

小売業 経営企画の視点で機械学習:決定木

リテールテックのアドベントカレンダー2021(笑)にのせているというところからお分かりいただけるように、私は小売業に勤務しています。

現在、経営企画本部にて会社全体の数値管理やデータ分析を主体とした業務をしているのですが、より高いレベルでの経営に向けて、現在機械学習を学んでいます。その過程でちょっとしたアウトプットをしてみたので記事にしてみます。

あくまで **小売、特に経営企画的な視点で機械学習を考えるとこうなる** という記事なので、技術的詳細は既に世の中に出回っている記事を参照いただくことをお勧めします。

## 営業利益黒字を達成するための決定木

![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2100048/e27d3158-68c8-c1be-1d2e-9171917d5247.png)

字が小さいですね。
**読めてしまってはここに載せられないので、あえて小さいです。**

## なぜ決定木なのか
**解釈性が高く経営判断として活用しやすい** ためです。

元記事を表示

【init】Google ColabでLINEおうむ返しBOTを爆速で動かす

# 下準備
– Google Colabを開く(https://colab.research.google.com)
– LINE Channel SecretとChannel Access Tokenの取得(https://developers.line.biz/console)
※参考: [Messaging APIを始めよう](https://developers.line.biz/ja/docs/messaging-api/getting-started)
– ngrokのYour Authtokenの取得(https://ngrok.com/)

# 定数の定義
“`python
# LINEのチャネルシークレット
LINE_CHANNEL_SECRET = ‘下準備の値’
# LINEのチャネルアクセストークン
LINE_ACCESS_TOKEN = ‘下準備の値’
# ngrokのAuthtoken
NGROK_AUTHTOKEN = ‘下準備の値’
“`

# 必要なライブラリのインストール&ngrokの初期化
“`
!pip install flask
!pip

元記事を表示

OTHERカテゴリの最新記事