Python関連のことを調べてみた2023年07月26日

Python関連のことを調べてみた2023年07月26日

MacBook(M2)にインストールしたStable DiffusionのAPIをPythonで呼び出して画像を生成してみた

[Supership](https://supership.jp/)の名畑です。今期アニメの[AIの遺電子](https://ai-no-idenshi.com/)が原作連載開始されたのは8年近く前なわけですが、現代においては、さらに迫って感じられます。

## はじめに

前回の記事[Stable Diffusion web UIをMacBook(M2)にインストールして画像の生成をしてみた記録](https://qiita.com/nabata/items/81dcc430aa03fc0b0f45)では**web UI**(ブラウザ)を経由して[Stable Diffusion](https://ja.stability.ai/stable-diffusion)の画像生成を行いました。

今回は**web UI**を経由せずに、PythonからローカルのAPIを叩いて画像の生成を行ってみます。

## 環境設定

[前回の記事](https://qiita.com/nabata/items/81dcc430aa03fc0b0f45)で行った環境構築が完了していることが前提です。

元記事を表示

箱庭でUnityの電車をマイコンシミュレーション環境で動かそう

EV3で実現した電車と信号を、Unityとマイコンシミュレーションを連携させて動かせるようにしました。

# 前提とする環境
現時点では、以下の環境を想定しております。

## Unity

* Unity Hub
* Unity Hub 3.4.1
* Unity
* Unity 2021.3.7f1
* Blender
* Blender v2.9.3以降

なお、Unityおよび Unity Hub, Blender はインストールされていることを前提として解説します。

## Windows 環境

* Windows10 Home, Windows 11
* WSL2/WSLg/Ubuntu20.0.4
* WSL2/Docker Engine
* VSCode
* マイコンの制御プログラムの編集/ビルド用に使います。

# 事前準備

Windows版では、WSL2を利用しますので、事前にインストールをお願いします。
また、インストール完了後、端末上で以下のコマンドを実行して、ネットワークツール(routeやifconfigコマンド)をインストールしてくだ

元記事を表示

Python環境構築チートシート

# pyコマンド
“`python:environment_py.py
# 起動バージョン確認1
> py –list-paths
Installed Pythons found by C:\Windows\py.exe Launcher for Windows
-3.10-64 C:\Python310\python.exe *
-3.7-64 C:\Python37\python.exe

# ※C:\Windows に py.ini を配置
# 起動バージョン確認2
> py –list-paths
Installed Pythons found by C:\Windows\py.exe Launcher for Windows
-3.10-64 C:\Python310\python.exe
-3.7-64 C:\Python37\python.exe *

# 仮想環境の作成
> py -3.10 -m venv wakasama

# 仮想環境の有効化
> .\wakasama\Scripts\activ

元記事を表示

【Python】叱られたので”import *”が嫌われる理由を調べてみた

# まえがき
初めまして、もしくはお久しぶりです。Halcyonです。
部活にて、Pythonのプログラムを書く時に`import *`文を使ったことを顧問に怒られました。
その場では顧問の説教を納得したふうに聞いていましたが、正直腑に落ちなかった(競プロでは普通に使ってるし…)ので、なぜ非推奨なのかをしっかりと調べてみました。

~~多分怒られた本質は先輩の書いたプログラムを勝手に書き換えたことです。その点はめちゃくちゃ反省しています。~~

# 言いたいこと
* 使っている関数がわかりにくくなり、コードの可読性を下げる
* 無駄な関数までインポートしてしまい、名前空間を汚染する
* バグを潜ませやすい

## 起きていること
競プロ典型90問の、[Statue of Chokudai(★3)](https://atcoder.jp/contests/typical90/tasks/typical90_r)を解くプログラムを考えます。

~~~py
from math import sin,cos,atan2,PI

pi=3.141592653589
T=int(input())

元記事を表示

機械学習を用いた電車識別アプリを作成

**[目次]**
1.背景
2.アプリ概要及び背景
3.実行環境
4.準備
5.学習及び結果分析
6.今後の対応

**1. 背景**
子どもが電車好きで、よく電車を見に行ったり、本を見ていました。
2歳の息子は山手線と京浜東北線の区別を確り名前を言い当てて上手に識別してましたが、その本を見るとぬり絵でした。白黒の状態にも拘らず、言い当てていました。

私自身、緑が山手線、水色が京浜東北線と色でしか判別していないなと気付き、AIによる画像識別をしてみたいという発想に至りました。

**2. アプリ概要**
電車の画像識別アプリです。山手線と京浜東北線の画像識別を行います。
まずはカラー画像を取り扱い分類を行います。加えて、グレースケールの場合で上手く識別出来るかやってみました。
勉強途上のため、まずはカラー画像で2つの分類を行いますが、今後は更に拡張して行きたいと考えています。

**3. 実行環境**
Google Colab

**4. 準備**
(1)データの収集
日本の電車を対象とした画像のデータセットは中々見当たらなかったため、画像を収集してファイルに保存して分類することに

元記事を表示

初学者のオタクが、推しの出演情報を管理するLINEbotを作ってみた。【Python+LINEMessagingAPI+スプレッドシート】

# まえがき
私事なのですが、今年某アイドルのファンクラブに入会しました。
アイドルのファンクラブに入るのは人生初の出来事です。

そこで思ったこと…
**メンバーのTV出演情報、見逃しがち!!!!**

メンバー多め&私箱推しなのに…
会報(メール)の下の方にしれっと書いてあるだけで終わり。
~~だいたいメールなんていちいちチェックしてない…令和よ?~~

そこでオタクは考えました。
**(´-`).。oO(LINEでちゃちゃっと登録できて、今日の出演情報を返してくれるbotを作れないだろうか。)**

# 目次
3部構成でお送りします。
下記リンクから飛んでみてください↓

[①勤怠管理botの作成](https://qiita.com/unmochan/items/e68e615a257f4e8f90b4) ※Youtubeにアップされている講座の写経

[②推しの出演情報の登録を行うbotにリメイクする](https://qiita.com/unmochan/items/ebf09e4c4913f12a9d17)

[③本日の出演情報を取得し、返してくれる機能を追加](htt

元記事を表示

本日の出演予定をお知らせする機能を追加してみる。[Python+スプシでLINEbot作成その③]

※この投稿は、
[初学者のオタクが、推しの出演情報を管理するLINEbotを作ってみた。【Python+LINEMessagingAPI+スプレッドシート】](https://qiita.com/unmochan/items/68a24cdf9f35327071e1)
のその3です。

その1は[こちら](https://qiita.com/unmochan/items/e68e615a257f4e8f90b4)
その2は[こちら](https://qiita.com/unmochan/items/ebf09e4c4913f12a9d17)

# やったこと
その2で登録した推しの出演情報の中から、本日放送予定のものをメッセージとして送信する処理を追加しました。

# 仕様
①本日の出演情報を知りたい場合、「本日」と入力し送信する。
②今日の日付を取得し、Str型に変換。
③スプレッドシートの”日付”列が今日の日付になっているものを抽出し、リスト化する。
④取得したリストをループ処理で回し、送信用文言に加工して文字列として戻す。
⑤該当データがなかった場合、「今日の出演情報はありません

元記事を表示

推しのTV出演情報を登録するLINEbotを作ってみる。[Python+スプシでLINEbot作成その②]

※この投稿は、
[初学者のオタクが、推しの出演情報を管理するLINEbotを作ってみた。【Python+LINEMessagingAPI+スプレッドシート】](https://qiita.com/unmochan/items/68a24cdf9f35327071e1)
のその2です。

その1は[こちら](https://qiita.com/unmochan/items/e68e615a257f4e8f90b4)
その3は[こちら](https://qiita.com/unmochan/items/f2fbce64d4ff2232622f)

# やったこと
その1で写経して作成した勤怠管理LINEbotの処理を修正し、TV出演情報を登録するLINEbotにリメイクしました。

# 仕様
①放送日、出演者、番組名のデータをカンマ区切り1行で記載する。
②Pythonのsplit関数を用いてデータをカンマごとに分割後、1レコードとしてテーブルに保存。
③登録が成功したら、「登録完了しました!」メッセージを返す。

# 実装
下記の通り、登録処理を定義しました。
“`py:app.py

元記事を表示

勤怠管理botを作る[Python+スプシでLINEbot作成その①]

※この投稿は、
[初学者のオタクが、推しの出演情報を管理するLINEbotを作ってみた。【Python+LINEMessagingAPI+スプレッドシート】](https://qiita.com/unmochan/items/68a24cdf9f35327071e1)
のその1です。

その2は[こちら](https://qiita.com/unmochan/items/ebf09e4c4913f12a9d17)
その3は[こちら](https://qiita.com/unmochan/items/f2fbce64d4ff2232622f)

# やったこと
Youtubeに投稿されている講座を見て、勤怠管理botの実装をしました。

# 使用教材

[いまにゅのプログラミング塾](https://www.youtube.com/@imanyu_programming)

# 開発環境
Windows 11 Home

# 使用技術
・Python3.11.4
・LINE Messaging AP

元記事を表示

Django Template操作まとめ(自分用メモ)

## Django自分用メモになります
今回はTemplateの操作についてまとめます

## 開発環境
OS:mac
エディタ:vscode
python:3.10.9
django:4.1.0

### templateに値を渡して表示させる
“`python:views.py
def home(request):
return render(request,’home.html’,context={
‘キー’:’渡したい変数など’
}

#今回はクラスを定義してそれをtemplateに渡してみる
class Member:
def __init__(self,name,id,picture,join_at):
self.name = name
self.id = id
self.picture = picture
self.join_at = join_at

member_list=[
Member(‘Taro’,0,’img/taro.jpg’,’2020/01

元記事を表示

Complex Demodulationとは?

# 初めに
本記事では,時間周波数領域の解析などに使われるComplex Demodulation法(以下,CD法と表記)についてなんとなく解説します.CD法は,**時系列データを対象に,ある周波数に対する振幅と位相の時間的変化を抽出する**手法です.

:::note warn
注意
筆者は,CD法についてなんとなく理解した程度の人間です.
内容が間違っている可能性もありますので,ご了承ください.
また,間違っていたらコメント欄にてお知らせ頂けると幸いです.
:::

# 数学的解釈
CD法をなんとなく理解するための数学的解釈です.
まず,簡単のために周波数$f$をもち振幅$A$と位相$\theta$が時間の関数で与えられる
次のような時系列データ(信号)$P(t)$を考えてみましょう.
“` math
P(t)=A(t)\sin\{2{\pi}ft+{\theta}(t)\}
“`
この信号の,周波数$f$が持つ振幅と位相を見てましょう.
(もちろん,この信号には周波数$f$以外の信号は含まれていませんよね?)

$P(t)$にそれぞれ,$\sin{2{\pi}ft}$,$\

元記事を表示

ChatGPTでプログラミング学習をする際の大事なこと

今回はChatGPTでプログラミング学習をしている初学者、これからしようとしている方に向けて記事を書こうと思います。

先輩方にも、現在の初学者界隈を垣間見てもらえればと思います。
 
私はChatGPT4でPythonを主に学習して2か月が経ちました。
 
2か月の割にはあまり身に付いていないと感じたので、自分への戒めも含まれています。

## 教えは乞うても答えは乞うな

私?「以下の要件を満たすコード頂戴」

GPT?「はい✨」

私?「エラーでた」

GPT?「エラーを見ると…このコードで解決できると思います✨」

ChatGPTめっちゃ優秀なのでまとまったコードもバンバンくれます。
 
エラーが出て理解していなくても、エラーを貼り付ければ正解コードにたどり着けます。
 
私はこの沼にハマっていました。
 
この2か月で、学習中の私がアプリなどを5つほど開発できたのは確かにChatGPTのおかげです。
 
しかしもう一度同じアプリを開発しろと言われると、知識技術を吸収できておらず恐らくほとんど同じくらいの時間がかかると思います。
 
学習の一環としてアプリ開発を主にしてきたもの

元記事を表示

PythonでWord(.docx)のネストされた表を取得する

## まとめ
Word内の表の中の表(ネストされた表)はpython-docxで中身を取得できる

## 背景
以前、職場で行われた実験をデータベース化したときのことです。
いろいろ壁はあったのですが、その中で最も扱いに苦労したものに実験条件の抽出があります。
どういうことかというと、各実験での実験計画書がwordで書かれており、使用する材料は表の中の表、すなわちネストされた表として記載されてました。
↓のような感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471244/051c34b2-25cb-cc9a-541e-8f6ecf105315.png)

Wordの表を扱うのすら面倒なのに、その中にネストされた表を抽出するのはめちゃくちゃ怠かったです。
当時はいろいろ試した記憶がありますが、この方法に落ち着きました。

## 方法
“`python:code1
import docx

def get_nested_table(doc):#ネストされた表を取り出すジェネレータ関

元記事を表示

複数の.MTSファイルを.MOVや.MP4に一括で変換する

## 背景
AVCHD内の.MTSファイルをmp4に一括変換したかったのですが、フリーソフトにろくなもんがないため、chatGPTに教えてもらいながらpythonでそれを実行できるコードを書きました

ffmpeg(v6)を使用しているので、ffmpegが対応してるコーデックならなんでも変換できるはず(未検証)

## 簡単な機能説明
・指定ディレクトリ内の.MTSファイルを.mp4に変換して別の指定ディレクトリに置く
・その際ファイル名は動画ファイルの撮影日時を使用(2023-07-25-14-32.mp4みたいな)
・コマンドラインで簡単めに実行できるといい

## 前提
Macで動くことを確認してます(一応windowsでも動くはず)
pythonのバージョンは`3.11.4`です

## セットアップ
1. 任意の場所に`mp4-converter.py`を作成する
2. 下記のコードを貼り付け後保存
“`python
import os
import argparse
import datetime
import platform
from tqdm import tqdm

元記事を表示

WinMergeでフォルダ差分を出してExcelにまとめるまでをPythonで自動化・改

# 背景
以前、Pythonを使ってWinMergeの比較結果を一発でExcelにまとめる、という記事を書かせていただいた者です。

https://qiita.com/y-tetsu/items/5eb076ec9787fad70958

相変わらず普段、WinMergeのお世話になっています。

あれからしばらく経ちましたが、その後も少しずつメンテを行い改良を重ねてきました。ある程度キリがいいところまで来たので、今回はその進捗をメモしておこうと思います。

# やったこと
前回からの改善点を挙げます。

– 差分ファイルのシートに行番号を必ず入れる
– 文字列の差分箇所を必ず赤色で強調する
– 異なるフォルダの同名ファイルの差分出力に対応する
– 差分ファイルに表を追記する処理を高速化する

# できたもの
コマンドライン上で、今回作ったスクリプト(*winmerge_xlsx.py*)を以下のように実行すると、フォルダ同士の比較結果をまとめたExcelファイルが得られます。

(実行方法)
“`
python winmerge_xlsx.py <比較元フォルダパス> <比較先

元記事を表示

ChatGPT Pluginを触ってみる

created by en-japan Yue.Pu

## ChatGPT Pluginとは
https://openai.com/blog/chatgpt-plugins
現時点では課金アカウントしか使えません
* 公式的Doc:
https://platform.openai.com/docs/plugins/introduction
* サンプルpluginのGitリポジトリ:
https://github.com/openai/plugins-quickstart​
サンプル簡単なTodo Listリポジトリです。
リポジトリ中に作業必要なファイルが以下4つ:
![截屏2023-07-12 20.16.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3456096/f5f2bd04-2064-138f-7abf-1f7a81f96fa9.png)
– Main.py:メインのエントリーファイルであり、プラグインのルートやリクエストの処理ロジ

元記事を表示

ChatGPT Code Interpreterできること

created by en-japan Yue.Pu

Code Interpreter(コードインタープリター)とは、ChatGPTが提供する公式プラグインの一つで、このプラグインを利用することで、ChatGPT上でPythonを使ったコードの実行や、ファイルのアップロード・ダウンロードができるようになります

# まず使い方
現時点では課金アカウントしか使えません。

1. ChatGPTにログインし、左下の3点→「Settings」をクリックします。
2. 「Beta features」をクリックし、「Code interpreter」の右にあるトグルボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3456096/c653cf60-47a1-c296-a5d0-6089d6c33fad.png)
3. TOP画面に戻り、[New chat]をクリックし、「GPT-4」をクリックし「Code Interpret

元記事を表示

python subprocess cannot use a string pattern on a bytes-like object

### encoding=’utf8’を追加する

“`python
proc_result = subprocess.Popen(cmdargs,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
startupinfo=_no_window,
encoding=’utf8′).communicate()[0]

# No tx update required
if rx_maketx_noupdate.search(proc_result):

元記事を表示

クロージャについてゆるくまとめてみる。

#目次
[1.はじめに](#1はじめに)
[2.関数内関数を理解する](#2関数内関数を理解する)
[3.クロージャを理解する](#3クロージャを理解する)
[4.まとめ](#4まとめ)

# 1.はじめに
pythonを勉強していくと関数に苦手に感じるのではないでしょうか。(本人初学者)個人的に関数を理解していく上で、特にややこしく感じた「クロージャ」についてまとめたいと思います。

# 2.関数内関数を理解する
関数について勉強していくと、必ず目にする「関数内関数」を少しまとめてみる。
“`
def outer():
a = 1
def inner():
return a + 1
return inner()

print(outer())
<<< 2 ``` outer()で定義された引数に、inner()で追加で新しい機能(処理)を定義し、returnでその機能をouter()に返している。 # 3.クロージャを理解する 上記とは少し異なるコードを書いてみました。 ``` def outer(): a = 1 def inner(): r

元記事を表示

√(9x-18)<=√(-x^2+6x)「17年 芝浦工大 工・シス理工・デザ工・建 1(1)」をChatGPTとMathematicaとWolframAlphaとsympyでやってみたい。

グラフがでます。

**パイソニスタの方へ
???同値変形の方法を教えて下さい。???**

オリジナル

https://kamelink.com/blog/2023/07/24/1-3-17-sibaurakoudai-kou-sisurikou-dezakou-kenn-1-1/

上と同じです。大学入試数学問題集成>テキスト
未登録

# xxxx ChatGPT で(できませんでした。) xxx
入力文
“`
不等式√(9x-18)<=√(-x^2+6x)をみたxの範囲 ``` XXXXX したがって、不等式の解は 1.315 ≤ x ≤ 13.685 です。 # Mathematicaで 勉強中。 # WolframAlpha で https://ja.wolframalpha.com/input?i=%E2%88%9A%289x-18%29%3C%3D%E2%88%9A%28-x%5E2%2B6x%29 解 2<=x<=3 # sympyで(数学入試問題 様のやり方で)同値変形しましょう. ①???sympyの同値変形はどのようにしたらいいですか??? ②>

元記事を表示

OTHERカテゴリの最新記事