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

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

Streamlitを使用した音声解析アプリの作成:OpenAI WhisperAPIの活用

![スクリーンショット 2024-03-20 160607.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3364428/5e448abc-1ca6-fc12-f613-7c43826c53cd.png)

# はじめに
この記事では、OpenAIのWhisperAPIを使用して音声ファイルをテキストに変換し、さらにそのテキストを処理する「音声解析アプリ」の作成方法についてステップバイステップで説明します。PythonとStreamlitを用いて、ユーザーフレンドリーなウェブアプリを構築します。

# ステップ1: 開発環境の準備
まずは、必要なPythonパッケージをインストールします。これにはstreamlit、python-dotenv、openaiが含まれます。
“`python
pip install streamlit python-dotenv openai
“`
これらのライブラリにより、ウェブアプリの構築、環境変数の管理、OpenAI APIの呼び出しが可能になります。

# ステ

元記事を表示

【Docker Compose】DooDを使って、PHPファイルからPythonコンテナ内のPythonファイルを呼び出す方法

## はじめに
備忘録
タイトルの通りです。
どなたかのお役に立てれば幸いです。

## ディレクトリ/ファイル構造

以下のような構造であるとします。

“`
sample/
├─ web/
│ ├─ src/
│ │ └─test.php
│ └─ Dockerfile

├─ python/
│ ├─ src/
│ │ └─test.py
│ └─ Dockerfile

└─ docker-compose.yml
“`

## `python/test.py`

今回は以下のようなプログラムとします。

“`python:python/test.py
list = [
‘Apple’,
‘Banana’,
‘Orange’,
‘Kiwi’,
‘Strawberry’,
‘Mango’
]

for data in list:
print(data)
“`

## `web/`について

`exec`関数を使って、`$command`で指

元記事を表示

【YouTube Data API v3】run_console()エラーが出るときの解決方法

## はじめに
備忘録
タイトルの通りです。
どなたかのお役に立てれば幸いです。

## 解決方法

Pythonでの、OAuth2.0認証のためには以下のモジュールが必要ですが、バージョンを指定しないとうまく動作しないことがあるようです。

“`bash
pip install google-api-python-client==1.7.2
pip install google-auth==1.8.0
pip install google-auth-oauthlib==0.4.1
pip install google-auth-httplib2==0.0.3
“`

:::note
また、GCPでのOAuthクライアントIDを作成するときに「ウェブアプリケーション」を選択すると、リダイレクトによる認証時にアカウント選択画面が表示されません。
「デスクトップアプリ」等を選択すると表示されます。
:::

元記事を表示

[python / pandas] DataFrame を扱う人が覚えておきたい、ちょっとレアな便利技16選

# 概要

– そこまでメジャーではない(?)
– けど、覚えておくと実装時間やコードの行数を大幅削減できる!

という便利な技をご紹介します!

「そういえば`pandas`ってあんなこともできたような気がするな。」
「自力で実装する前に調べてみようかな?」

と気付けると、時短 & コード量削減できる可能性が生まれます。
ではでは、お楽しみください!!

# Environment

項目|version など
–|–
OS|Ubuntu 22.04.3 LTS (Google Colaboratory)
Python|3.10.12
pandas|1.5.3

# 便利技たち!

## 0. 一覧

下に行けば行くほど、珍しく、使い道がよくわからなくなっていきます😂
これ見たことないな〜、っていうところだけでも見ていっていただけると嬉しいです^^

※「レア度」は、星が多くなるほど珍しい、もしくは難解な処理であることを意味しています。(独断と偏見により設定)

|No|レア度|メソッド|
|:–|:—|:—-|
|1 |★ |[df.isin()](#1

元記事を表示

PythonとPyAudioを使ってsin波を作成して音を鳴らす方法

## 説明

この記事では、PythonとPyAudioライブラリを使用して、
sin波(正弦波)を生成し、音を鳴らす方法を紹介します。
(なお、筆者は物理がかなり苦手なので、もし理解に間違いがあればご指摘いただけますと幸いです。)

## 動作環境
– Windows 11(Windows Powershell)
– Poetry: 1.8.2
– python: 3.10
– numpy: 1.26.4
– PyAudio: 0.2.14

## Poetryについて
PoetryはPython で依存関係を管理およびパッケージ化するためのツールです。
Poetryを活用することで、作業ディレクトリ以外の環境を汚さずにパッケージをインストールできます。

[こちらの公式サイト](https://python-poetry.org/docs/#:~:text=Poetry%20is%20a%20tool%20for,build%20your%20project%20for%20distribution.)からインストールできます

今回は本筋ではないので、インストール方法や基本

元記事を表示

Chat Vectorを使って日本語LLMをチャットモデルに改造する

## はじめに
> [Chat Vector: A Simple Approach to Equip LLMs with Instruction Following and Model Alignment in New Languages](https://arxiv.org/abs/2310.04799)

という論文では、LLMの学習済み重みパラメータの足し引きによって、事前学習済みモデルに対話能力を与えることができるという結果が示されています。

具体的には、英語で事前学習されたモデル(以下ではベースモデルと呼びます)と、ベースモデルを指示チューニング (instruction tuning)してチャット形式の対話ができるようにしたモデル(英語チャットモデル)、ベースモデルを英語以外の言語で継続事前学習したモデルの3つのモデルを用います。
英語チャットモデルの重みからベースモデルの重みを引いたものは、チャット形式で対話ができる能力を表したベクトルであり、そのベクトルを他言語の継続事前学習モデルの重みに加えることで他言語のモデルにチャット形式の対話能力を付与できるという、個人的

元記事を表示

Pythonで「正規表現にマッチした文字列を新しい文字列に置換する(Pattern.sub, Pattern.subn)」の動作を確認してみた

# 概要

Pythonで「正規表現にマッチした文字列を新しい文字列に置換する(Pattern.sub, Pattern.subn)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/regex/index10.html

# 実装

以下のファイルを作成しました。
“`sample.py
import re

msg = ‘Border is Red, Box is red, Line is RED’
pattern = re.compile(r’Red|RED’)

result = pattern.sub(‘red’, msg)
print(result)

import re

msg = ‘Border is Red, Box is red, Line is RED’
pattern = re.compile(r’Red|RED’)

result = pattern.subn(‘red’, msg)
print(result)

import re

msg = ‘Red Blue Yellow

元記事を表示

mecab-python3 + UniDic 利用時にユーザ辞書を追加する (類似単語のコストで代用)

:::note warn
この記事は Python から MeCab を使用する想定で、mecab-python3==1.0.8 を使用しています。また、この記事の方法は類似単語のコストで代用するものであって、根本対応 (コスト自動推定が動くようにする) ではありません (根本対応は参考文献 [1] にありますが Windows 端末ではやや面倒そうなため実施していません)
:::

### 要旨

MeCab でユーザ辞書を作成したいとき、新規登録単語に「左文脈ID」「右文脈ID」「単語生起コスト」を割り当てる必要がありますが、少なくとも最近の UniDic 辞書でそれらの値の自動推定がうまく動きません [1]。一つの簡単な回避策として、自動推定をあきらめて登録済みの類似単語の設定値で代用する手があります。そのようにする場合、「左文脈ID」「右文脈ID」「単語生起コスト」は MeCab.Tagger.parseToNode() で取り出せます (こちらの関数で取り出すなら MeCa

🔰自然言語処理で似たような単語から1つだけ選定する方法

# はじめに
自分はニュースキュレーション機能のあるGoogleアプリを好んで作っています。
ニュースキュレーションアプリでは、新聞各社などのメディアから情報を仕入れて、AI等でユーザへの価値提供が最大化できる記事を選んでいるそうです(ネット情報によると)
AIプログラミングの勉強ついでに表題の機能のコードを書いてみました。

アプリのインストールはこちら👇
・Andorid

https://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox&hl=ja&gl=US

・iOS

https://apps.apple.com/jp/app/google-%E3%82%A2%E3%83%97%E3%83%AA/id284815942

![resized_anime_style_blog_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603047/bb1db6e8-efa3-f339-03

Pythonで認証コードを返すだけのマイクラサーバーを作ってみる

# はじめに
接続したときに「あなたの認証コードは〇〇です」みたいなの返すやつ作ってみたい
[前の記事](https://qiita.com/n_mache/items/b76cff45e3b99a65a3a0)書いてて「これサーバー側も作れそう」ってなったからやってみる
# Quarry
[Quarry](https://pypi.org/project/quarry/)ってモジュールを見つけたけど、どうやら更新が止まってて1.20.4では機能しないらしい…
1から実装するしか無さそう?
# 実際にやってみる
認証コード返すだけのサーバーだし、ステータスとログイン処理さえあればいいはず
## モジュール
`cryptography` と `requests` だけ標準で入ってないから `pip install` で入れないと動かない
“`python
import socket #TCP通信とかをするやつ
import json #JSONをパースしてくれるやつ
import struct #バイナリを簡単にするやつ(?)
import threading #同時接続とかをする

wiki40b-jaの加工

# 概要
Hugging Faceの**range3/wiki40b-ja** で公開されている**wiki40b-ja**を利用して,記事タイトルとセクションタイトルを除いたテキスト抽出の加工を紹介します[^1].

# 1. データのダウンロード
最初に次の3種類のファイルを[ここから直接ダウンロード](https://huggingface.co/datasets/range3/wiki40b-ja)するか,Hugging Faceのdatasetsライブラリを利用してデータセットをダウンロードします.

* train.parquet: 1.2 GB
* test.parquet: 66.2 MB
* validation.parquet: 66.1 MB

datasetsライブラリを利用してダウンロードするコードは,次のようになります.

~~~python
from datasets import load_dataset
data = load_dataset(“range3/wiki40b-ja”)
print(data)
# DatasetDict({
#

航空宇宙エンジニアが普段使っているスクリプト

自分が使っている日々の業務を効率化するスクリプトを紹介します。
「十分に発達した科学技術は、魔法と見分けがつかない」
プログラミングができない時の私にとって、これらはまさに魔法のようです

# Outlook関連
– Outlookからアドレス帳を取得し、CSVファイルにするスクリプト
– 取得したCSVから複数キーワードでアドレスを検索するスクリプト
– 検索結果のアドレスをコピペできるフォーマットでクリップボードへ入れるスクリプト
– Outlookのスケジュールを抽出するスクリプト
– Outlookのスケジュールに項目を追加するスクリプト
– Outlookでメールを送信するスクリプト
– Outlookのメールを一括で取得するスクリプト

# Creo関連
– Creoの設定(config)を行うスクリプト
– Creoのパーツツリーを取得するスクリプト
– Creoのパラメータを設定するスクリプト
– Creoの材料設定を行うスクリプト
– Creoでアセンブリと部品を追加するスクリプト
– Creoのファイルを開くスクリプト

# CAE関連、設計計算関係
– Nastr

【小ネタ】「if a != a:」をそっとしておいて

## Q. ソースコードに「if a != a:」という条件分岐があった。このブロックを安易に削除してはいけないのはなぜか?

**回答**

aがNaNかどうかを判定しているから。
– – –

NaNはIEEE 754 で定められた特殊な値であり、Pythonでは`math.nan`や`numpy.nan`などがこれに該当します。

NaNはNaNを含むすべての値との比較演算`==`の結果が`False`になります。また、`!=`は`==`の結果の否定であるため`True`になります。

したがって、aがNaNのとき `a != a`は`True`になり、分岐先のプログラムが実行されるのです。

> The IEEE 754 special values of NaN, inf, and -inf will be handled according to IEEE rules. Specifically, NaN is not considered close to any other value, including NaN.
>
> [PEP 485 – A Functi

データ解析用ライブラリ

# はじめに
皆さん、データ解析やデータ処理にどのライブラリを使用していますか?
恐らく、ほとんどの人が`pandas`を使用していると思います。
今回は、その他のデータ解析用ライブラリやデータ処理ライブラリについて紹介したいと思います(/・ω・)/

# Pandas
言わずと知れたデータ解析用ライブラリですね。
データフレームとシリーズという2つの主要なデータ構造が提供されており、データの読み込みやフィルタリングなど、様々なデータ解析/処理に適しています。
中小規模のデータセットに適しており、大規模なデータの処理はメモリ不足や処理速度の問題からあまり向いていません。

# Numpy
こちらも言わずと知れたライブラリです。
高速な多次元配列の処理とベクトル化演算のためのライブラリであり、配列の生成やブロードキャスティングなどの多彩な操作を提供しています。
線形代数や乱数生成、フーリエ変換などの科学技術計算に必要な機能も備えており、`Pandas`を含む多くの化学計算ライブラリの基盤となっています。

# Dask
大規模のデータセットにを並列処理するためのライブラリです。
`Pan

【2024年春Ver.】AWS Lambda Layerの作成方法をわかりやすく解説【Python3.12】

1年ぶりにAWS Lambdaでやってみたいことができて、新しいライブラリを入れるためにLayerを作ろうと[自分の過去記事](https://qiita.com/__DASHi__/items/268062f0dba0e93170f2)見ながらAWS Cloud9を久しぶりに開いてみたら、ちょいちょい変わっているところがあって「まあAWSだもんね、そうだよね」と勝手に納得していました。

この記事は、そんなAWS Lambdaを久しぶりに触った私が将来読んでも引っかからずに作業できるよう、AWS Lambda Layerを簡単に作成する方法を解説する備忘録です。

## 1. Lambda Layerとは

まずは、Lambda Layer(”Lambda”はラムダ、”Layer”はレイヤーと読みます)とは何?という話から。

**AWS公式サイトより**

> Lambda レイヤーは、補助的なコードやデータを含む .zip ファイルアーカイブです。レイヤーには通常、ライブラリの依存関係、カスタムランタイム、または設定ファイルが含まれています。(出典:[https://docs.a

スニペットで超効率的にコードを書く方法【VSCode】

## タイピングが面倒ならスニペット
スニペットとは、**自分でカスタマイズ** できるショートカットのようなもの。

例えば、cと打ったら `console.log();` が表示される、ということができる。

ファイルの種類ごとに管理できるので、上の例だと c と打ったときにPythonだと `cv2` と表示させたいということもできる。

## 普段使っているスニペットを紹介
僕がVSCodeで使っているスニペットを紹介します。

ちなみにスニペットのjsonファイルを呼び出すには、以下のようにすればよい。
– `command` + `^control` + `p` でEnter
– 呼び出したい言語 (pythonなど) を選択するか入力する

![snippet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/899381/af9e9360-8495-f33a-3018-d086ee56c003.png)

![image.png](https://qiita-image-store.s3

pyenvでPythonのversion切り替えをする方法 (M1 Mac)

まず、現在のバージョンを確認する。
“`
python –version
“`

次に、pyenvを用いてインストール可能なバージョンを確認。
“`
pyenv install –list
“`
pyenvがそもそも入っていない場合は以下の方法でインストールする。
“`
brew install pyenv
“`

インストール可能なバージョンから選び、インストール。
“`
pyenv install 3.7.2
“`

pythonのバージョンを変更。
“`
pyenv global 3.7.2
“`

さらに以下のコマンドで情報を更新。
“`
eval “$(pyenv init -)”
“`

pythonのバージョンが更新されていることを確認。
“`
python –version
“`

## 参考記事

https://qiita.com/Kohey222/items/19eb9b3cbcec9b176625

https://yu-nix.com/archives/python-change-version/

初心者開発者が4DaysでDjangoアプリを作成した話【Day2】

## はじめに
この記事は続編です。
Day1を見てない方はこちらから読んでいただけるとわかりやすいと思います。

https://qiita.com/Jinn_0220/items/21667581457e0380bc7a

## Day2でやったこと

– アカウント周り
– 管理アカウントが組織内のユーザーを作成できるようにする
– ログインするとアカウントが持つ権限によって飛ぶページを変える

## 開発
### ここまで実装したものと、Day2の実装
ここまでは、簡単にログイン機能を実装しました。
今回のmodelで特徴的なのは、組織の管理者と一般ユーザーで権限を分けることです。
それを、is_adminでフラグ立てています。
Day2での開発では、is_adminがTrueのアカウントが、is_adminがFlaseの一般ユーザーを作成できるようにします。
create_superuserをすでにmodelで作っているので、それを利用します。

“`attendance_app/models.py
from django.db

pythonで雑に実行引数の処理をする

# 雑に実行時引数の処理をする
雑に引数処理します、辞書型のある言語なら同じロジックが使えます
引数の解説だとかヘルプだとかバリデーションとか無いですが機能します
一般的な引数パースのライブラリがあるので使う機会あまり無いと思いますが

“` python

# argparse.py
import sys

def argparse(arguments, options):
keyValue = “”
keyReaded = False
for argument in arguments:
trimedArgument = argument.strip()
if keyReaded == False:
if trimedArgument in options:
keyValue = trimedArgument
keyReaded = True
else:
options[keyValue] = tr

Python で物体認識AIのYOLOv8を試してみた!〜基礎編〜

# はじめに
今回、試したのは画像認識AIの中でも、物体を認識できるYOLOv8を試してみました。
今回は、基礎編と題して、githubのページに記載の、インストールから基本的な操作についてご紹介します。

# 環境
Windows10
Python3.11.8
GPU:NVIDIA Geforce RTX3060
VSCode

# 使用ライブラリー
pytorch 2.2.1+cu118
ultralytics 8.1.25
opencv-python 4.9.0.80

#YOLOv8のインストール:
githubの以下のページに記載の流れでインストールします。
前提条件としてはPython3.8以上でPyTorchは1.8以上が必要です。
PyTorchをインストールした後、以下のpipコマンドでYOLOv8をインストールします。
“`
pip install ultralytics
“`

https://github.com/ultralytics/ultralytics

# YouTubeでの解説:
上記のインストール方法から、サンプルプログラムの実行までをYo