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

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

ラズパイの再起動時のカメラの入れ替わりが発生しハマった件

## はじめに
ラズパイで複数のカメラを使っていて、こまったのでまとめます。

## 問題
– 導入したシステムで使用しているラズパイで再起動時にカメラの入れ替わりが発生。
– ゲージの種類も同じだったため、気づかずに検査がされていた

## 解決方法
– 変化するデバイスIDとUSBポートの番号を紐付けるクラスを作成し、 撮像ソフトではカメラを接続するUSBポートの番号を指定するようにした。

## おわりに
順次、ラズパイのソフトの入れ替え実施予定

## 参考URL
– [複数のWebカメラを使用する場合、USBポートの番号からデバイスを識別するクラスを作ってみました](https://dev.classmethod.jp/articles/opencv-device-id-by-port-number/#toc-6)
– [Raspberry PiでUSBのデバイス名を固定する:USBポート番号指定](https://www.raspberrypirulo.net/entry/usbname-fix-port#:~:text=USB%E3%83%9D%E3%83%BC%E3%8

元記事を表示

3次元物理シミュレーションのサロゲートモデルを作りたい

# はじめに
複雑な3次元構造を扱う機械学習モデルは論文レベルで幾らか出ているようには思いますが、一般的な手法が確立されているようには見えていません。試しにやってみたいなと思い、データの準備とサンプルモデルの作成に取組もうと思います。
内容を掘り下げるために、二部構成の記事シリーズを予定しています。本シリーズでは、以下の内容に焦点を当てます。
1. シミュレーションデータを機械学習用のデータセット(Torch-geometric)に変換(本記事)
2. データセットを使ってサロゲートモデルを作成
このシリーズを通して、3次元物理シミュレーションのサロゲートモデルへの理解を深めたいと考えています。

# 利用するデータ
今回はパブリックに公開されている3次元物理シミュレーションのデータを活用させてもらいます。ジェットエンジンのブラケットについてのシミュレーションとなっています。

[SimJEB: Simulated Jet Engine Bracket Dataset](https://simjeb.github.io/)

# シミュレーションデータ詳細
## 1. データ構造
先ず

元記事を表示

pipenvとtoxでpytestをやってみました

# やりたいこと
・各ローカル環境の違いによって、PCが変わったらpythonがあれこれ足りなっかたりうまく実行できなくなったりする問題を解決するため、pipenvを導入
・toxでテストの自動化をする

# 前提
・Pythonインストール済み
(今回はpython3.12でやっていきます)
・pipインストール済み

# ディレクトリ構成
“`ruby:
root   
┣━ functions
┗━ api
┗━ app.py
┣━ tests
┣━ conftest.py
┗━ test_app.py
┣━ Pipfile
┣━ Pipfile.lock
┗━ tox.ini
“`

# やり方
### pipenvのインストール
“`ruby:
pip install pipenv
“`
### Pipfileの作成
いろんな理由でPipfileがrequirements.txtより便利と思うので、今回はrequirements.txtを作らず、直接Pipfileを作成した~
あくまで

元記事を表示

自作アセットでPlayable!のコリジョンチェックやってみた

「Playable!」は、AIQVE ONE 株式会社が提供する、ゲーム QA に特化した自動テストツールスイートです。

今回は、このPlayable!を使用して、ゲームアセットの衝突判定(以下コリジョンという)が必要な場所に設定されているかをチェックしてみます。

初めに、Playable!公式サイトにも導入手順の例としてある、Unreal Engine(以下UEという)のTemplate Assetである「Third Person Template」を用いて導入をしてみました。

![スクリーンショット 2023-12-27 101357.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3639929/d2aca6c4-a69d-75b5-9cba-ea6c8e5fa76c.png)

御覧の通り、味気のないTemplateなので、自作してみたassetでコリジョンチェックしてみました。

![スクリーンショット 2023-12-27 100520.png](https://qiita-image-

元記事を表示

motoのmock_dynamodbを使ってみました

# やりたいこと
LambdaでDynamoDBからデータを取得するプログラムの単体テストをやるため、DynamoDB関連の処理をモック化したい

# 前提
・Pythonインストール済み
・pipenvインストール済み
(今回は便宜上pipenv内でtoxでテストをやるのですが、ローカルで諸々ライブラリを入れてテストをやっても大丈夫です)

# ディレクトリ構成
“`ruby:
root   
┣━ functions
┗━ api
┗━ app.py
┣━ tests
┣━ conftest.py
┗━ test_app.py
┣━ Pipfile
┗━ tox.ini
“`

# ソースの中身
ごく簡単の処理ですが、あるDynamoDBテーブルからget_itemをやりたい
“`ruby:app.py
import boto3
import os

# DynamoDB関連情報はLambdaの環境変数から取る
DYNAMO_TABLE_NAME = os.environ.get(‘DYNAMO_T

元記事を表示

Cerberusでヌルチェックをする方法

# やりたいこと
データの「ヌルチェック」という表現について、場合によってちょっと曖昧になってしまうかなと思います。
通常は「null(None)ではないこと」を指しているかと思いますが、いままでの職場では「ブランク(”)ではないこと」や「項目自体が存在すること」などを言っている人もいるので、、、

今回は「null(None)ではないこと」、「ブランク(”)ではないこと」、「項目自体が存在すること」、それぞれCerberusでのチェック方法を調べてみました。

# 前提
・Pythonインストール済み
・pipenvインストール済み
(今回は便宜上pipenvでやるのですが、ローカルでcerberusなど諸々ライブラリを入れてテストをやっても大丈夫です)

# ソースの中身
さっそく調べた結果をソース化しました~

“`ruby:cerberus_validator.py
from cerberus import Validator

SCHEMA = {
‘name’: {
‘type’: ‘string’,
‘required’:

元記事を表示

pythonのライブラリやパッケージをインストールする際にエラーが出る

下記のようなエラーが出ました。

~~~
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
anaconda-project 0.11.1 requires ruamel-yaml, which is not installed.
ja-ginza-electra 5.1.3 requires spacy<3.7.0,>=3.2.0, but you have spacy 3.7.2 which is incompatible.
ginza 5.1.3 requires spacy<3.7.0,>=3.2.0, but you have spacy 3.7.2 which is incompatible.
conda-repo-cli 1.0.20 requires clyent==1.2

元記事を表示

Pythonで「タプルの長さ(要素数)を取得する」の動作を確認してみた

# 概要

Pythonで「タプルの長さ(要素数)を取得する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/tuple/index4.html

# 実装

以下のファイルを作成しました。
“`sample.py
print(len((“Red”, “Blue”, “Green”)))
print(len((10, 20, 30, 40, 50)))

animallist = (“Monkey”, “Cat”, “Dog”, “Cow”)
print(“要素数は ” + str(len(animallist)) + ” です。”)
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
3
5
要素数は 4 です。
“`

# まとめ

何かの役に立てばと。

元記事を表示

ChatGPTとPythonで学ぶ GARCH

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

### **assistant**:

もちろんです、こんにちは。今日はGARCHモデルについてお話しします。

GARCHモデルとは、金融経済学でよく用いられる、時系列データのボラティリティ(価格等の変動性)をモデリングするためのツールです。GARCHは「Generalized Autoregressive Conditional Heteroskedasticity」の略で、見直すと「一般化自己回帰条件付け等分散」を示します。

GARCHモデルでは、ボラティリティは過去の誤差絶対値や過去のボラティリティの情報を使って、それ自体が自己回帰すると考えます。一般的に金融時系列データでは、ボラティリティクラスタリングが現れ易いので(つまり、大きな価格変動が連続する傾向がある)、そのような特性を捉えるのにGARCHモデルは非常に有効です。

それでは、PythonでどのようにG

元記事を表示

expdpの.dmpから全テーブルのcsvファイルを出力~RDS for Oarcleへimpdpするまで~

# はじめに
故あって、oracleのdmpから全テーブルのデータをcsvファイルにする必要がありました。
その際の作業内容を備忘録的に書きます。

## 環境用意
dmpを展開するためにoracleが必要です。今回はたまたま使えるAWSアカウントがあったのでRDSを立てることにしました。
RDS for Oracleの立て方、およびSQLPLUSクライアントの用意の仕方は公式が詳しいです。
[Oracle DB インスタンスを作成して接続する](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html)

なお、EC2からRDSに接続するところについては、私は昔ながらのtnsnames.oraを使いました。
`$ORACLE_HOME/admin/network/tnsnames.ora`を作成し、中身はこうです。
“`tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS

元記事を表示

これからのchatGPTでのプログラミングを生き抜くのはVDM++?

# 形式的仕様記述言語VDM++を用いたChatGPT開発
VDMという言語をご存知でしょうか?
形式仕様記述というマイナーな言語ですが、昨今のChatGPTの進化に従い、一気に主役の座に躍り出るのではないか?
と思いまとめました。

なぜVDMがこれから生きてくるか?
まずは超ざっくりとVDMというものを解説したいと思います。

### ポイント1
VDMとはプログラミング言語ではなく、「仕様記述言語(厳密な)」です。

### ポイント2
VDMはシステムの事前条件と事後条件を定義する。実装は書かなくても良い。

### システム開発のざっくりした流れ
仕様ー>設計ー>コーディング

この仕様の部分を担うのがVDMです。

システムというのはつまるところ、
入力に対して出力を得るものです。

——–
入力-> [箱] -> 出力

———-

そして**正しいシステム**とは、事前条件の条件を満たした時、事後条件が満たされるものが正しいシステムです。

逆に言うと、事前条件と事後条件がなければ正しいプログラムか正しくないプログラムかは評価できないということです

元記事を表示

Python初心者が実装で気づいたこと

最近社内のpythonツールの修正を改善したく、実装してみました。
すると、はまったとか気づいたことがありますので、忘れないようそして他の方の参考になれるようにこの記事に書くようにします。

# 勉強になった点

## int型でファイルへの書き込みはできない

pythonは変数定義の際に型の指定は必要ないが、method呼び出す際に型がチェックされることがあると今回のことでわかりました。
書き込みは以下のコードで実現しています。
“`Python
filePath = {ファイルのパス}
pageNoFile = open(filePath, ‘w’)
pageNoFile.write(pageCount)
pageNoFile.close()
“`

pageNoみたいな数字をファイルに書き込むと以下のエラーになります。
“`
TypeError: write() argument must be str, not int
“`
pageCountが数字とかのint型である場合、以下のようにstring型に変換できます。
“`
str(p

元記事を表示

Cerberusでrow(list of dicts、テーブルの複数行データ)を一気に検証する方法

# やりたいこと
**infoテーブル**
| name |company | telno |
|:———–|————:|:————:|
| satoh | A | 12345678 |
| suzuki | B | 87654321 |

テーブルの行みたいな、複数件のデータを一気にCerberusに流して検証したい

プログラミング上はこんな感じなもの

“`ruby:
{‘info’: [{‘name’: ‘satoh’, ‘company’: ‘A’, ‘telno’: ‘12345678’}, {‘name’: ‘suzuki’, ‘company’: ‘B’, ‘telno’: ‘87654321’}]}
“`

# 前提
・Pythonインストール済み
・pipenvインストール済み
・今回は便宜上pipenv内にtoxでpytestをやるですが、ローカルでpytestやcerberusなど諸々ライブラリを入れて

元記事を表示

LangChainのBearlyInterpreterToolを試してみた

## はじめに
LangChainのBearlyInterpreterToolを試してみました。
ChatGPTのCode Interpreterのような機能が実装できます。
  
## 環境
– Windows 11
– Python 3.11.5
– LangChain
– OpenAI
  
## 実装
### 必要なライブラリのインストール
“`terminal
pip install langchain openai
“`
  
### Bearly AI APIキーの取得
https://bearly.ai/dashboard/developers にアクセスします。アカウントがない場合は、作成してください。

「New API Key」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124507/ab703779-3dc9-3ab3-fa62-1df6a83d492c.png)
  
キーの名前を入力して「Create 」を選択します。

![imag

元記事を表示

線形回帰を用いた売上予測(Store Sales – Time Series Forecasting)

# 目次
1.[自己紹介](#自己紹介)
2.[実行環境](#実行環境)
3.[成果物の概要](#成果物の概要)
4.[ライブラリのインポート](#ライブラリのインポート)
5.[データの読み込み](#データの読み込み)
6.[データの確認](#データの確認)
7.[前処理と特徴量エンジニアリング](#前処理と特徴量エンジニアリング)
8.[反省と今後](#反省と今後)

# 自己紹介

現在、主婦ときどきフリーランスWEBデザイナーとして細々と仕事をしています。

元々は文系で営業職だった私が、結婚を機に離職し、主人の勧めもあってIllustratorが使えるようになりたくてWEBデザインの職業訓練に通い始めたのがキャリアチェンジのきっかけでした。
ありがたいことにパートタイマーとしてEC関連企業で2年ほどお仕事させてもらいましたが、成長に限界を感じ離職、スキルアップ期間をとることにしました。

デザインというよりもHTML等のコーディングのほうがおもしろかったこともあり、プログラミングに興味を持ちました。
そこから、2023年9月からAidemyのデータ分析講座(6か月コース)を受

元記事を表示

Mayaで6D回転を扱う

# はじめに
今回もかなり需要が限られる話かもしれませんが、
巷で話題のAIにまつわる論文のなかでなかなか興味深いものがありましたので
それについて書こうと思います

画像生成が話題ですが、自分のなかでは[MDM(Human Motion Diffusion Model)](https://guytevet.github.io/mdm-page/
“MDM”) の関連論文が興味深かったのですが、

そこで __”6D回転”__ という概念を知ります

# MDMと6D回転ってなんだ?

MDMとはテキストから3次元空間のボーン・メッシュの変形を推定するなどモーション生成AIの研究論文です

MDMでは2Dto3Dの姿勢推定AIの別論文の研究内容が利用されています
それが6D回転です

6D回転は2次元の画像に書かれている人間の顔の姿勢を、
3次元姿勢に推定するAiModelに関する研究論文で扱われている回転行列のデータタイプです

6D回転は従来の従来手法の実行パフォーマンスに比べて20%以上効率をアップさせることが可能になると述べられています

論文
[6D ROTATION R

元記事を表示

Pythonで「スライスを使ってタプルの指定した範囲の要素が含まれる新しいタプルを取得する」の動作を確認してみた

# 概要

Pythonで「スライスを使ってタプルの指定した範囲の要素が含まれる新しいタプルを取得する」の動作を確認してみました。以下のページを参考にしました。

https://www.javadrive.jp/python/tuple/index3.html

# 実装

以下のファイルを作成しました。
“`sample.py
mytuple = (“A”, “B”, “C”, “D”, “E”)
#インデックス 2 から 3 までの要素を取得する
print(mytuple[2:4])
#インデックス 0 から 2 までの要素を取得する
print(mytuple[0:3])
#インデックス 3 の要素を取得する
print(mytuple[3:4])

animaltuple = (“Cat”, “Lion”, “Cow”, “Dog”, “Giraffe”)
print(animaltuple[1:4])
print(animaltuple[0:2])
print(animaltuple[2:3])

animaltuple = (“Cat”, “Lion”, “Cow”,

元記事を表示

さや香の「見せ算」をChatGPTに実装してもらってみた

先日のM-1グランプリ決勝でさや香が披露したネタに出てきた「見せ算」をChatGPTに実装してもらいました。

# 見せ算のルール
見せ算のルールは以下ポストを参考にしました。
大学院ルールは割愛。

OpenAI(ChatGPT)のAPIを使って英検を意識した英語のリスニング問題を生成する

# はじめに
英語、大事ですよね?
リスニング、大事ですよね?
でも市販の問題集、高くないですか?
リスニングの問題、限られていませんか?
英検を受ける人、過去問形式の問題もっとほしくないですか?

作ればいいんです!最新のテクノロジーを使って!

**そう、生成AIです!**

# 前提
以下のものを含む英語のリスニング問題を生成することを目標にします。

* 問題の本文(英文、政治・科学・歴史などさまざまなジャンル)
* 本文に関連する問い二つ(英文)
* それぞれの問いに対する四択の選択肢(英文)
* 正解となる選択肢(番号)
* なぜ正解となるのかの解説(日文)
* 本文と問いの英語音声(英語音声)

また、上記に加えて本文中の難しい単語に関する詳しい日本語による解説も出力させます。つまり、これ一つだけで英語力向上に必要な教材を出力させることを目指します。
なお、上記の形式は実用英語検定・通称英検の一級・準一級のリスニングPart2形式に則っています。会話形式でなく一人の話者によって発話されるため、生成が容易であり英語力向上にも寄与しやすいと考えるためです。

他には、Open

元記事を表示

OTHERカテゴリの最新記事