Python関連のことを調べてみた

Python関連のことを調べてみた
目次

職員室で先生を呼ぶソフトを作った話 Qiita全国学生対抗戦 Advent Calendar 2023 13日目

## はじめに
### 自己紹介
 大阪のとある高校に通っている人です。Linuxをさわったり、Pythonでアプリ開発したりしています。

### この記事の内容
 高校の部活で開発して実用化までしたアプリの制作過程について、まとめて振り返ってみました。

:::note warn
Pythonの超初心者がアプリ開発した話です。最近のイケてるフレームワークなどは一切使っていませんし、「引数」とは何かというレベルからスタートしているような内容です。
:::

## どんなソフトか紹介します!
 簡単に言えば、「職員室で先生を代わりに呼んでくれるアプリ」です。ただの甘えかもしれませんが、世の中には、大きな声を出せない人や出したくない人がいますよね。そんな人たちの悩みを解決するために制作しました。

### リポジトリ
 GitHubで配布しています!

https://github.com/cyber-yuito723/TeaChimer

### 使い方
1\. 呼びたい先生の名前のボタンを選びます。(スクショは全く先生の名前が入っていないですが。)
![1.png](https://

元記事を表示

pythonを使って、不要なRAWファイルをゴミ箱送りにする

不要なRAWファイルを削除して、ディスク容量を圧迫しないようにしようというお話です。

[前々回](https://qiita.com/azuwai2/items/4f796081fe0d90122dbe)の写真の一元管理、[前回](https://qiita.com/azuwai2/items/3a8ddf41f162bb4941e2)のミラーリングバックアップから、引き続いて写真整理ネタ。使うのは、再びpythonです。

 
そして、今回はコードを書く部分は流行りのChatGPTさんにお願いしてみました。
ChatGPT先生にpythonのコードを書いてもらうやり取りとコードを載せています。
※ChatGPTの発言は主にコードだけ抜粋しています。

# 本件に取り組んだ理由

ビューアで写真を見ているとき、RAWファイルは鬱陶しいので表示しないようにしています。・・・で、そのビューア上で不要なJPGファイルを削除していくのですが、当然RAWは残っています。

元記事を表示

Python+REST APIでGaroonから会議室が含まれるデータを抽出する。

# Garoonの指定した会議室が含まれるデータを取得する
kintoneは要素の指定に自分で指定したIDを指定できるので、garoonもそうだろうと思っていたら数字でした。
そこが分かった記念にメモをあげておきます。
ただ、なんとなく、SOAPがかっこよさそうなので、SOAPで始めましたが、requestのデータ形式の定義がうまくいかずRESTにしました。

“`python: GetSchedule.py
import requests
import json

URL = ‘https://(サブドメイン).cybozu.com/g/api/v1/schedule/events’

headers = {
# 「ログイン名:パスワード」をBASE64エンコードした値をxxxxxxxxxに指定。
‘X-Cybozu-Authorization’: ‘xxxxxxxxx’
}

def main():
res=GetSchedule(5) #IDは番号(garoonで指定したIDではない)
jres=res.json() #json形式で取り出し

元記事を表示

【dlprog】機械学習でlossと一緒に進捗バーを表示するPythonライブラリの紹介

機械学習・深層学習モデルの実装で、学習時にlossと一緒に進捗バーを表示するライブラリを作りました。

## dlprog

– [PyPI](https://pypi.org/project/dlprog/)
– [GitHub](https://github.com/misya11p/dlprog/)
– [API reference](https://misya11p.github.io/dlprog/)

ループ中の進捗バーを表示するライブラリです。ループごとに出力される値を集計し、その平均値を共に表示します。深層学習モデルの学習時に役立ちます。進捗バーと一緒にlossなどをリアルタイムに表示できます。

![demo_dl.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2235373/2e3f75cf-22a3-a87f-436e-13034e98d621.gif)

## 導入

“`bash
pip install dlprog
“`

初めに`Progress`オブジェクトを生成し

元記事を表示

動けば良いの!?要件定義ミスと揃わないビンゴ

こんにちは!去年は[MIDIキーボードの記事](https://qiita.com/Lundy/items/2c568f17b9df9b9602e0)を書いてました、$Lundy$ です!
一年ぶりの N/S高等学校 Advent Calendar、様々な技術的な記事に圧倒されてそういった記事を書くのは恐れ多いので、
今年は、プログラミングの中でもあまり注目されない**ある作業**をテーマに、体験談ベースの話を書かせていただきます!

この記事は二部構成です。

第一章では、今回の体験談を紹介しています。
プログラミングに関して知識が無くても読めるように工夫したので、専門外の方もぜひ!

第二章では、開発過程を紹介しています。
ビンゴの生成にまつわるオリジナルのアルゴリズムを開発したので、紙とペンで手元でも再現できる手順を紹介しています。こちらもぜひ!

### テーマは「要件定義」
あまり注目されない**ある作業**こそ、今回のテーマ「要件定義」です。
要件定義とは、開発を始める前に、何を作れば良いかを明確にする作業のこと。
この記事では「要件定義」のミスを巡る失敗について体験談ベー

元記事を表示

応用数学学習まとめ: 第1章 線形代数

# 第1章: 線形代数

## 定義
– スカラーとベクトル
– スカラーは普通の数、四則演算が可能
– ベクトルは大きさと向きを持つ、スカラーのセット
– 行列
– スカラーを表にしたもの
– ベクトルを並べたもの
– テンソル
– ベクトルや行列を一般化した概念
– ベクトル: 1階のテンソル
– 行列: 2階のテンソル
– N階のテンソルはN次元にスカラーを並べたもの

## 行列の計算
– 行列とベクトルの積(正確には内積, inner product)
– 行×列の計算
– $ \left(\begin{matrix} a & b \\\ c & d \end{matrix}\right)
\left(\begin{matrix} x_1 \\\ x_2 \end{matrix}\right)
= \left(\begin{matrix} ax_1 + bx_2 \\\ cx_1 + dx_2 \end{matrix}\right) $
– 行列の積$ \boldsymbol{A} \bold

元記事を表示

プログラムの挙動を知るための自動トレース,自動ロギング

# はじめに
 働き方改革とタイパの時代,初見コードの理解もできるだけ時短して,可処分時間(自由時間)を増やしましょう.
 難解なコードの意味はコードに聞いて,プログラムのざっくりした挙動もコードに語ってもらいましょう.
 とはいえ,デバッグのためにprint文のコピペを繰り返すのは,煩雑な仕事を増やし時短的にNGです.そもそも,無節操なコードクローンはイマイチです.
 そこで,関数やメソッド呼び出しを自動ロギング,自動トレースする方法を試します.

# 動作環境
MacOS sonoma 14.1.2, JupyterLab
Python 3.8.13
pip 23.3.1

# 説明の順序

0. trace.Traceを使う
1. 通常のメソッド実行の例題
2. 自動ロギングの実装例(インスタンスメソッドのトレース)
– メソッド呼び出しをフックする: メソッドのラップ関数
3. 自動ロギングの実装例(スタティックメソッドのトレース)
4. メタクラスのトレース(メタメタクラス,自己循環メタクラス化?)

# trace.Trace

tr

元記事を表示

ChatGPTとPythonで学ぶ 焼きなまし法

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ 焼きなまし法」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

もちろんです、よろしくお願いします。

まず、焼きなまし法について基本的なことを説明しましょう。火にかけて熱するようなイメージの名前ですが、これは実際には統計的な最適化アルゴリズム(特に、大域的最適化アルゴリズム)の一つです。これが生まれた背景には固体物理学があり、物質内部のエネルギー状態が最も低い、つまり最も安定した状態(最適解)を求めるためのアプローチとして提案されました。

焼きなまし法(またはシミュレーテッドアニーリング法)の特徴は、局所的な最適解に囚われずに大域的な最適解を探すことができる点です。それでは、このメカニズムをPythonを使って確認してみましょう。まず、一般的な疑似コードから見てみると良いでしょう。

1. 初期状態を決定する。
2. 現状態での解評価値(エネルギー)を計算する。
3. 新しい状態をランダム

元記事を表示

社内プロキシ配下でryeを使う(Pythonパッケージ管理ツール)

# はじめに

こんにちは!
私は普段Pythonを使ってコーディングをすることが多いのですが、Pythonのパッケージ管理は様々なツールが群雄割拠の状況であり、何を使うべきか悩まされることが多いです。

本記事では、数あるパッケージ管理ツールの中で、個人的に使い勝手が良いと感じた**Rye**を紹介します。また、**社内プロキシ環境で使う上で躓いた点とどう対処したか**についても記していきたいと思います。

# Ryeとは

**Rye**は、Armin Ronacher氏がRustにて開発した**Pythonのパッケージ管理ツール**です。

各種リンクは以下の通りです。
+ [ドキュメント](https://rye-up.com/)
+ [GitHub](https://github.com/mitsuhiko/rye)

Ryeができることとして、例えば以下があります。

+ Pythonのインストール、及びバージョン管理
+ ライブラリのバージョン、依存関係の管理
+ 仮想環境(venv)の作成

これまで、私はpoetryをよく使っていましたが、Pythonのインストール

元記事を表示

selenium + AWS lambda開発環境の構築

## はじめに
AWSの開発環境の構築の備忘録です💁
初心者です😅
間違えてる部分多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇

環境構築はかなり苦労しました。
なので図にしてみました。
わかりづらい部分もあるかと思います。
ただ、図にするのは時間がかかってしまうのがデメリットですが、理解の落とし込みはかなりしやすいなと感じました。

## 🦁**結論**🦁
## 手順
1. Cloud Shellを開く
2. Pythonのバージョン確認
3. Seleniumのインストール(バージョン3.141.0)
4. CloudShell上で保存用ディレクトリを作成
5. chromedriverをダウンロードして展開
6. headless-chromiumをダウンロードして展開
7. いらなくなったzipファイルの削除
8. headlessディレクトリをzip化
9. S3のバケット作成
10. zipファイルをS3にコピーする
11. Seleniumレイヤーの作成
12. headlessレイヤーの作成
13. 関数の

元記事を表示

polarsの`.when().then().otherwise()`と`.replace()`の速度比較

# polarsの`.when().then().otherwise()`と`.replace()`の速度比較

## 前提

特定の列の値の置換を行う場合、`pl.when().then()…otherwise()`を使う方法と、`Expr.replace()`を使う方法とがある。

例えば、1から10までの整数が格納されている列を、a ~ j のアルファベットに置換する作業を行うとしよう。

1つ目の方法として、`.when().then()`を地道に続けて書くことができる。

“`python
EXPR1 = (
pl.when(column_0=1)
.then(pl.lit(“a”))
.when(column_0=2)
.then(pl.lit(“b”))
.when(column_0=3)
.then(pl.lit(“c”))
.when(column_0=4)
.then(pl.lit(“d”))
.when(column_0=5)
.then(pl.lit(“e”))
.wh

元記事を表示

Azure AI Visionをザッと触ってみた

以前、画像処理の記事を2本投稿しました。

https://qiita.com/fsd-shuhashi/items/0bd0efa3411eee0682f7

https://qiita.com/fsd-shuhashi/items/64580442f5b9b1f53777

船井総研デジタルはAzureを積極的に使っていますので、今回はAzure AI Visionを触ってみました。

# Azure AI Visionとは?
Azureが提供するサービスの1つです。
AIを用いた画像処理に特化しており、物体検出やOCRなどの機能が備わっています。

## 機能
名前| 詳細|
–|–|
光学文字認識(OCR)|光学式文字認識 (OCR) サービスは、画像からテキストを抽出します。 新しい Read API を使用して、印刷されたテキストと手書きのテキストを写真やドキュメントから抽出することができます。 ディープラーニングベースのモデルを使用して、さまざまなサーフェスや背景のテキストを操作します。 たとえば、ビジネス ドキュメント、請求書、レシート、ポスター、名刺、レター、ホワ

元記事を表示

Milk-v duoのpythonでpinpongライブラリを使用してLチカ、探索と成功編

## はじめに
秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
1. 最高1 GHzで動作するデュアルRV64コア
1. 64 MBのラム
1. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

12月12日の記事、「Milk-v duoのpythonでpinpongライブラリを使用してLチカ、導入と失敗編」でpinpongライブラリを使用できる環境を導入しました。
Milk-v duo上の「pip」の動作はハラハラします。
その後、例に従ってpythonスクリプトを作成しましたが、Lチカの成功に至っていません。

この記事では、pinpongでのGPIOのピンの指定を確認し、Lチカに成功までの話を紹介します。
SDカードイメージは、v1.0.5です。

## Pinpon

元記事を表示

reportlabでPDFを正しく合成できない!!!

この記事は,[Qiita全国学生対抗戦 Advent Calendar 2023 #3](https://qiita.com/advent-calendar/2023/student)13日目の記事です.
12日目の昨日は@sekky_grさんの[AutoHotkeyでXbox Game Barを常駐させるスクリプトを作った](https://qiita.com/sekky_gr/items/d936bebd63be2e284ad5)でした.

私が2日を溶かした,謎の不具合についてここで書いておこうと思います.

:::note info
初めての記事なので読みづらいと思います.
どうかご容赦を…
:::

# 宣伝!
私が部長を務める工学部のblog,「まっつーのコードライブラリ」にも同じ記事を掲載しています!
ぜひこちらから覗いてみてください!

https://nisho.tech/reportlab%e3%81%a7pdf%e3%82%92%e6%ad%a3%e3%81%97%e3%81%8f%e5%90%88%e6%88%90%e3%81%a7%e3%81%8d%e3%

元記事を表示

ChatGPTを使って「クイズ☆タレント名鑑」のワンコーナーを蘇らせたい

「クイズ☆タレント名鑑」という番組をご存知ですか?

「水曜日のダウンタウン」の演出をされている藤井健太郎さんが、かつて手掛けていた番組です。
私はこの番組が大好きでした。

その番組のワンコーナーに「モノマネ芸人いる?いない?クイズ」というものがありました。

このコーナーは、アパレル君 / コマツ・デラックス / GO!ピロミ などといった多くのモノマネ芸人風の名前の中から、
実在すると思った芸人の名前を回答者が選び、実際にいたら正解、いなかったら不正解というもの。

放送終了から10年以上経ち、このコーナーのことなどまったく忘れていた私に、ふと天啓が舞い降りました。

**”ChatGPTを使えば存在しないモノマネ芸人を無限に作れる!!!”**

昔好きだったテレビ番組を復活させられるかもしれません。
さっそく作っていきましょう。

### 偽モノマネ芸人の生成
芸人さんのようなセンスのあるネーミングをChatGPTに考えさせるのは難しいのでは?と考えた方も多いかもしれません。

しかし、この1年、業務時間の大半をプロンプトチューニングに捧げてきた私にかかれば、そ

元記事を表示

Pythonでプライベートブロックチェーンネットワークを作ってみた

この記事は[NTTコムウェア AdventCalendar 2023](https://qiita.com/advent-calendar/2023/nttcomware) 13日目の記事です。

# はじめに
NTTコムウェアの管です!
最新技術に熱心で、システム設計から開発・運用までの経験を持つ、6年目のアプリ開発エンジニアです。現在、Web3.0技術検証ワーキンググループのリーダーを務めています。

# 記事向け対象
本記事は、ブロックチェーンに興味を持つエンジニアや、ブロックチェーンの勉強中の方を対象としています。

# きっかけ
– エンドユーザーAからエンドユーザーBにコインを送ることを検証していきますが、ブロックチェーンネットが必要のため、今回ご紹介させていただきます。
![実現したいこと.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3626247/665dd3f3-176c-4d27-aab7-a5a8fb614239.png)

# 構築
## ブロックチェーンネットワーク構築
::

元記事を表示

【Python】データ構造:リストを扱う

## 前回までのあらすじ
前回は、ドキュメンテーションとアノテーションについて触れて関数定義については終わりました。

https://qiita.com/advent-calendar/2023/python-hello-world

## 本日のゴール
– リストの扱いや特徴について触れる
今回数回にわたり説明するデータ構造はPythonコードでよく使われるので押さえておきたいです。

## リストの操作
リストに関しては、何度か触れてきていますが、リスト自体の操作に関しては触れてこなかったので、ここで様々なリスト操作について確認しておきましょう。

### リスト要素数をカウントする
“`python:python
sample = [1, 2, 3, 4, 5, 6, 5, 7, 4, 3, 2, 1, 0, -1, -5]
len(sample)
“`
“`:結果
15
“`

### リストの中にある特定の要素数をカウントする
リスト内にある4という要素の数を数える
“`python:python
sample = [1, 2, 3, 4, 5, 6, 5, 7,

元記事を表示

【Function Calling】指定したフォーマットで日付を返してくれるか検証してみた

# はじめに

[Function Calling](https://platform.openai.com/docs/guides/function-calling)とは、「自然言語の入力から、実行する関数とその引数を決定してくれる」機能です。
この機能は、OpenAIが提供する言語モデルである`gpt-3.5-turbo-0301`、`gpt-4`で利用できます。

本記事では、Function Callingで決定したい引数に日付がある場合に、どのようにして指定した日付フォーマットで返させるのがよいのかを検証します。

# 検証

Function Callingでは、関数の引数の各項目には、「型」と「説明文」を設定できます。
今回の検証では、この「説明文」を工夫することで言語モデルが出力する引数の日付フォーマットを制御する、というアプローチをとります。
なお、「型」は`string`や`number`などのプリミティブな型を指定でき、日付の型は指定できません。

## 検証環境

– Python
– rye `0.15.2`
– python `3.11.6`

元記事を表示

OpenAIのDALLE2を用いて透明に塗りつぶした領域を画像生成でインペイントすーる(Python)

# はじめに
[がちもとさんアドベントカレンダー](https://qiita.com/advent-calendar/2023/gachimoto3)13日目の記事です。
今日は、DALLE2を用いて透明に塗りつぶした領域を画像生成でインペイントしていきます。

# 開発環境
– Windows 11 PC
– Python 3.11

# 導入
1.ライブラリのインストール
pip install openai
pip install requests

2.OpenAIのAPIキーを取得

https://platform.openai.com/api-keys

3.元画像と透明に塗りつぶした画像を用意します

4.プログラムを作成

~~~image_edit.py
from openai import OpenAI
import requests

client = OpenAI(api_key=”“)

response = client.images.edit(
model=”dall-e-2”,
image=open(

元記事を表示

mayaのプレイブラストをffmpegでmp4にしてみる2

mayaのプレイブラストをffmpegでmp4にしてみる
https://qiita.com/9boz/private/60c0aba7d92f14622a44

の続き

playblastの結果を取る

リファレンス曰く
https://help.autodesk.com/cloudhelp/2022/JPN/Maya-Tech-Docs/CommandsPython/playblast.html

>戻り値
>string 作成される moviefile の名前。

んじゃぁこれをそのまま渡せば・・・・

とりあえずプレイブラストを流すスクリプトを書く。

“`python
import maya.cmds as cmds
import maya.api.OpenMayaUI as omui
import maya.OpenMayaUI as OpenMayaUI

def getCurViewPanel():
curView = omui.M3dView.active3dView()
return OpenMayaUI.MQtUtil.fullName(i

元記事を表示

OTHERカテゴリの最新記事