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

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

Django ブログ記事に画像を表示する

# はじめに
Pythonの学習を始めようと思い、Djangoを用いてブログサイトの作ってみました。今回はその中で、ブログに画像を保存する方法を通して学習していきたいと思います。

# 開発環境
Python 3.8.12
Django 4.0.2
### バージョンの確認方法
Pythonのバージョン確認

“`ターミナル.
python –version
“`
Djangoのバージョン確認

“`ターミナル.
python
>>>import django
>>>django VERSION
“`

# 画像を使用するための設定

mediaファイルの設定の記述を追加します。

“`config/settings.
MEDIA_ROOT = BASE_DIR / “media”
MEDIA_URL = “/media/”
“`
アップロードされた画像をmediaディレクトリに保存するようにする設定です。
– mediaファイルはユーザーがアップロードしたファイルなどが保存されるディレクトリのことです。
– MEDIA_ROOTは、アップロードファイルなどを読み込む際

元記事を表示

Kindle for PCのスクショを撮る

# Kindle for PCを画像にしたい
Kindle for PCのUIは正直クソなので、画像にして保存したいです。
幸いなことにスクリーンショットは撮れるので、Pythonを使えば楽に画像に出来るでしょう。
# と、言うわけでweb検索した
その結果、pyautoguiを使って連続してスクショを撮っているPythonスクリプトがありました。でも、正直あまり気に入らなかったのです。
と、言うのも、実行したら5秒以内にKindle for PCを表に持ってきて、フルスクリーンにして、で、5秒ごとにページを進めてスクショを撮って保存する。と言うものでした。
しかも切り取る座標は自分で入力しなければいけませんでした。
# もっと楽に、高速化出来るはず
Windows限定になってしまいますが、ウィンドウ一覧から特定のウィンドウをアクティブにするのは出来るはずです、もちろん、フルスクリーンにも出来るはずです。
と、言うわけで大改造しました。もう元の面影もないです。

“`Python:kindless.py
import pyautogui as pag
import os, os.pa

元記事を表示

PEP 8 による暗黙の仕様

# シーケンスの長さを判定するケース

list,tuple,str などのシーケンスの場合、長さ 0 の判定では

“`python:
if seq: # PEP 8 – OK
if len(seq): # PEP 8 – NG
“`

とされているようです。

# この記述がトラブルとなるケース

独自クラスやモジュールでシーケンスに対応しつつ

  **中身が特定パターンのときに \_\_bool\_\_() が True (長さが 0 でなくても False)を返す**

オブジェクトを作ると不具合の原因になりかねません。

“`python:どう呼び出されるかのテスト(シーケンス非対応だが)
class A:
def __init__(self): pass

def __bool__(self):
print(‘A.__bool__’)
return False

def __len__(self):
print(‘A.__len__’)
return 1

clas

元記事を表示

ラズパイの測定データをmetabaseで可視化しようとしたが諦めた話。

# はじめに
ラズパイの測定情報をbig queryに入れ、metabaseでグラフに可視化している書き込みがあったので、試してみました。しかし、データの取り込みをするための操作で、クレジットカードの登録が必要ということが分かったので、途中であきらめることにしました。試してみる際に、やったことをまとめてみます。

# イメージ
今回行うのは、ラズパイにBME280をつけて、湿度、温度、気圧のデータを取得し、Big Queryのデータテーブルに書き込みを行います。そのデータをグラフで確認するためにmetabaseで見れるようにします。そのためには、Google Could Platform内で、Big Query APIの有効化、サービスアカウントを作成し、Big Queryのアクセス権限、データテーブルの作成が必要になります。また、ラズパイやMetabaseがBig Queryへアクセスするためには、サービスアカウントで作成したxxx.jsonファイルを使います。ただ、今回は、Big Queryへのデータの取り込みをするために必要なクレジットカードの登録の手続きをしていません。
![ス

元記事を表示

【初心者向け】asdfを使用したPythonの環境構築

## はじめに
筆者の環境は以下のとおりです。
 ・VSCodeを使用
 ・Windows10にてWSL2でUbuntu20.04LTSを使用
 ・Bash、Gitを使用

上記にasdfを使ってPythonを入れる予定です。

Pythonのセミナーを受講するにあたり、環境構築が必要になったため
どうせならasdfも使ってみようと思いメモ代わりに記述します。

元々、anyenvを使用していましたが
GitHubの更新が停滞していること、
ロードに時間がかかることを加味し、
乗り換え時かな、と個人的に考えたためこのタイミングで導入してみます。
[参考リンク:anyenvのリポジトリ](https://github.com/anyenv/anyenv)

## asdf導入編
以下の公式サイトを参考に進めます
[参考リンク:asdfインストール](https://asdf-vm.com/guide/getting-started.html#_1-install-dependencies)

ふむふむ、どうやら全6工程あると…
今回はPythonなので工程の3まで実施します。
(4~はデ

元記事を表示

お試し

  • 例え生成プロジェクト チュートリアル段階
    • gensim のinstall
    • 学習済みモデルのダウンロード
    • 複数話者文字起こしの練習

      # 1. はじめに
      Amazon Transcribeでは、(2022年3月現在、最大10人までの)複数話者に対応して文字起こしができる。試しに、使ってみた。

      # 2. 使い方
      ## 2.1. 音声ファイルを用意する。
      mp4a等のファイルを用意する。

      ## 2.2. Amazon Transcribe
      mp4a等のファイルをS3に登録する。(アクセス権限は最小で非公開にしておいても、Transcribeは動く。このため、オーナーと同一権限で処理が行われるのではと思われる。)
      ここで、話者(Speaker)識別のフラグをオンにして音声認識を実行する必要がある。デフォルトはチャンネル別なので、フラグを変更する必要がある。そして、音声認識結果のjsonファイル(asrOutput.json)を作成する

      ## 2.3. jsonからテキストに変換する。

      上記のファイルだと、json書式で見ずらいのでテキストに変換する。以下のコマンドで変換する。なお、スクリプト本体は参考資料の[github](https://github.com/trhr/aws-transcribe-transc

  • 元記事を表示

    numpy形式の2つの画像をマージする方法のメモ

    人生生きていると画像をマージしたいタイミングに出逢うこともあるかと思います。

    そういった時はこちらでマージできます。

    基本的なnumpyの操作ですが備忘録として残しておきます。

    “`merge_image.py
    def merge_image(original: np.ndarray, mask: np.ndarray, thresh: int = 0) -> np.ndarray:
    “””画像にマスクをマージする。

    Args:
    original (np.ndarray): cv2.imread()で読み込んだRGB(3channel)画像
    mask (np.ndarray): cv2.imread()で読み込んだグレースケール(1channel)画像
    thresh (int): マスクのしきい値。

    Returns:
    np.ndarray: マージされたRGB(3channel)画像
    “””

    ## マスクする部分を初期化
    mask_condition = ma

    元記事を表示

    初心者がimport torchではまった件

    # 機械学習プログラミング初心者がPyTorchのインポートではまった。

    import torch

    のコードを実行すると

    NameError: name ‘_C’ is not defined

    というエラーが出た。
    調べてみるとCythonのインストールが必要らしい。

    pip install Cython

    をターミナルで実行した後もう一度コードを実行してみると。

    いけた。

    【参照】
    https://github.com/pytorch/pytorch/issues/1633

    元記事を表示

    Pythonの野球シミュレーションでみるバント有効性 #1 シミュレーション作成編ⅰ

    # はじめに
     私はPythonでなるべく正確な野球シミュレーションを作り、それを用いてバントの有効性を調べたいと思っている。なぜならセイバーメトリクスのバントに対する主張は容認できないからである!
    知らない方もいると思うので補足しておくと、野球を統計学的に分析するのがセイバーメトリクスであり、それによるとバントは得点期待値を下げるとか、意味がないなどと言われている。15年以上プロ野球を見ている私にとって、いや皆さんにとっても受け入れがたい結果であろう。例えば、9回裏、同点 or 1点ビハインド 0アウト1塁のとき、監督のサインは(4番でもない限り)判で押したようにバントである。
    このようなことから本記事の最終目標はシミュレーション的観点からバントの有効性を確認するところにある。

    # 方針
     まずは複雑に考えず、9イニング、3アウトチェンジ、打者一巡できるモデルを作成したい。尚、投手が誰かなども重要だが、シーズン成績を用いて解析しようと考えているので、そこは考えず打撃部分のみを考える。設定は以下の通り。
    ・各打者の打率は一律3割とする
    ・単打orアウトのみを考慮し、乱数を用いて判断

    元記事を表示

    pyenv でpythonの共有ライブラリもインストールする

    Linuxにおいて、pyenvでpythonをインストールするときに、

    “`terminal:bash
    CONFIGURE_OPTS=”–enable-shared” pyenv install 3.x.x
    “`

    みたいなオプションをつけてあげると、pythonの共有ライブラリ(`Python.h`とか`libpython3.x.so`など)もpyenvのパスの下にインストールされる。共有ライブラリはビルドが必要なパッケージを入れるときに必要かも。

    ## 参考文献
    – https://qiita.com/methane/items/bf0b74550bee125cdea4

    元記事を表示

    WSL上に既に構築した仮想環境がVS Codeで一覧に出てこない

    # 状況
    VS Codeを使っている時にWSL上に既に構築した仮想環境を,
    Pythonの実行またはJupyerの実行に使いたいが,なぜか一覧に出てこない.

    # 解決策(自分の場合)
    ターミナルではWSLを開いているが,VS Code自体はWSLの環境ではなくローカルの環境だった.
    開きたいファイルがWSLのディレクトリ外だったためだと思われる.

    なので,
    左下の緑のところ → Reopen Folder in WSL
    としたらWSLの環境でVS Codeを開きなおしてくれる.

    元記事を表示

    transformersのサンプルをオフライン環境で動かしてみる

    # 初めに
    最近の深層学習のライブラリは親切でサンプルコードがgithubに公開されています。
    私もよく利用させてもらっているのですが、サンプルコードではインターネット上にデータを取得しに行くなどしているため、
    重要データを扱うような隔離された環境では実行できません。
    今回は隔離された環境でもサンプルのコードを実行できるようにtransformersの1サンプルの実行例を紹介したいと思います。

    # コードとデータの準備
    本記事ではhuggingfaceのtransformersというフレームワークを使用してテキスト分類のサンプルを実行します。
    実験コードとデータの事前準備はインターネットにつながるマシンで行ってください。

    ### 学習コード準備
    学習するコードは[transformersのgithub](https://github.com/huggingface/transformers)から取得します。
    “`
    $ git clone https://github.com/huggingface/transformers.git
    “`
    本記事ではクローンしたコードの「tra

    元記事を表示

    深層学習、機械学習のシード固定のはまりポイント紹介

    # 初めに
    機械学習や深層学習をしていると学習を再現させるためにシードを固定する必要が出てくると思います。
    私もその必要があり、[機械学習におけるランダムシードの研究](https://qiita.com/si1242/items/d2f9195c08826d87d6ad)を参考にしてシードを固定させていたのですが、私の環境だとどうにもうまく再現できませんでした。
    同じように困っている方がいるのではないかと思い記事にしました。

    # 原因
    アルゴリズム内での計算による誤差が原因で特定の数値に影響を及ぼしていました。
    私が使用したツール(アルゴリズム)はscikit-learnのKMeansだったのですが、predictによって得られるクラスターの予測値については全く影響ありません。
    影響があったのはKMeansでパラメータ計算(fit)後のcluster_centers_の値です。
    ※誤差の値は非常に小さい値だったのでクラスター番号の予測には影響しなかったと思われます。

    # 発見までの流れ
    なぜこの問題に気付いたかの流れです。

    1. シードを固定して深層学習を実施

    元記事を表示

    Pythonで月初日と月末日のリスト作成

    SageMakerからRedshiftやSnowflakeに接続してクエリを投げたり、月単位のデータマートに対して集計を行ったりということが最近多いので備忘録です。
    状況としては
    データマートのテーブル名やcsvファイルのファイル名
    に対して複数の期間をfor文で集計を回すことを想定しています。
    集計コードの例としては、以下のようなトランザクションのテーブルが

    | purchase_id | user_id | purchase_price |
    |:———|:———-|———-:|
    | P0001 | USER001 | 1000 |
    | P0002 | USER002 | 1500 |
    | P0003 | USER003 | 2000 |
    | P0004 | USER004 | 1000 |
    | P0005 | USER001 | 3000 |
    | P0006 | USER003 | 5000 |

    `transaction_2

    元記事を表示

    KaggleのJigsawで銀メダルを獲得した解法等

    # はじめに
    就労移行支援チームシャイニーに所属するTK(TeamShiny in Akihabara)です。
    つい先日、KaggleのJigsawコンペで113位となり銀メダルを獲得しました。
    今回はそこで効果のあった自然言語処理の前処理の手法について軽く触れたいと思います。
    コンペについての詳細はコード、スライドをあげているのでそちらも併せてご覧ください。
    また、Qiita初投稿のため不躾なところがありましたらすみません。



    # 資料等
    – [コード](https://www.kaggle.com/toshihikok/113th-solution)
    – [スライド](https://www.docswell.com/s/2600123617/58M475-2022-03-07-204955)


    # コンペ概要
    Jigsawコンペは自然言語のデータから文章の有毒性を判定する問題です。

    Public Leaderboardスコア上位の公開コードはPublic

    元記事を表示

    Python 基本構文メモ

    忘れそうな構文を記載します。
    ## 参照サイト
    [タプルとリストの違い、タプルの使いどころ](https://www.lifewithpython.com/2017/12/python-tuple-list-difference.html)

    ## 変数文字列展開
    “`python
    text = “ピザ”
    print(f”今日は{text}を食べました”)
    “`
    “`:結果
    今日はピザを食べました
    “`

    ## 基本のfor文
    “`python
    magics = [‘alice’, ‘mike’, ‘konbu’]
    for magic in magics:
    print(magic)
    “`
    “`:結果
    alice
    mike
    konbu
    “`
    ## for文のリストに関数
    “`python
    for value in range(1, 3):
    print(value)
    “`
    “`:結果
    1
    2
    “`
    # for文での配列一括追加
    “`python
    squares = [value**2 for value in range(1, 11)]
    print

    元記事を表示

    「テキストアナリティクスの基礎と実践」をpythonで読む1 テキストの基本統計と視覚化

    この内容は金明哲さんの「テキストアナリティクスの基礎と実践」のRでの実装をpythonで書き換えながら読んでいくものです。
    提供されているデータは、すでに形態素解析されてある程度集計されたデータとなります。
    詳しくは本を読んでください。

    テキスト分析では、語、文節、句などの頻度を分析することが基本となります。
    ここでは、様々な統計や視覚化手法の確認を行っていきます。

    ## 1. テキストの基本統計と視覚化
    テキスト分析では、語、文節、句などの頻度を分析することが基本となる。
    ### 1.1 要素の単純集計と視覚化
    ここでは、例として、A大学、B大学で学長が新入生に向けたメッセージを取り上げる。
    これを形態素解析し、その中から名詞の一部を集計したデータを示す。

    “`python
    import pandas as pd

    d1 = pd.read_csv(‘TwoPres.csv’, encoding=’shift-jis’)
    d1.columns = [‘語’, ‘頻度_A大学’,’頻度_B大学’]

    d1[‘相対頻度_A大学(%)’] = d1[‘頻度_A大学’] /

    元記事を表示

    【Pythonコード公開】留守でも安心!異常検知システムを自作してみた(後編)【機械学習】

    この記事は、「留守でも安心!異常検知システムを自作してみた」の**後編**です。
    留守中の侵入者を検知する異常検知システムを作っていきます。
    **まだ前編を読んでない方は先に[前編](https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6)をご覧ください。**

    https://qiita.com/umapyoi/items/eba3842aeab19b62f3a6

    **作成した異常検知システムのGUI:**
    ![Umapyoi異常検知アプリイメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/bc7be765-2174-48b2-7ced-495737ab3f7e.png)

    # システム作成手順(後編)
    後編では、異常検知モデルの作成とGUIアプリを作成します。

    ## 異常検知モデルの作成
    異常検知モデルの作成は、コーディング無しで簡単に異常検知モデルを作成できるプラットフォーム「[ADFI](https://adfi.jp/

    元記事を表示

    【Pythonコード公開】留守でも安心!異常検知システムを自作してみた(前編)【機械学習】

    来週、久しぶりの出張で家を留守にする予定なので、我が家の防犯が心配!
    そこで、侵入者を検知する異常検知システムを作ってみました&Pythonコードも公開します!
    侵入者検知以外にも、**「駐車場の空き状況の検知」「立ち入り禁止区域の監視」などの用途にも使える** (かもしれない)システムです。

    **作成した異常検知システムのGUI:**
    ![Umapyoi異常検知アプリイメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2535236/416d7e01-57ca-1635-5511-63736ced84cb.png)

    # 異常検知システム概要
    玄関(靴箱の上)に設置したカメラ映像を監視し、異常(侵入者など)があったら、自動で検知してメールで通知してくれるシステムです!
    留守中にメールが来るかドキドキですね!

    カメラ映像が正常か異常か判定するのは、異常検知モデルです。
    人がいない状態の画像を学習データとして利用することで、人影や身体の一部が映った場合に異常と判定する異常検知モデルを作成すること

    元記事を表示

    OTHERカテゴリの最新記事