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

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

Optunaのtrials_dataframeを見やすくする

Optunaは、ハイパーパラメータ探索を自動化する素晴らしいライブラリです。そのtrials_dataframe機能は、探索の過程を詳細に記録し、一覧できるため非常に便利です。以下のコードは、Optunaでの探索を行う基本的な例です。

“`python
study = optuna.create_study(direction=’maximize’)
stusy.optimize(objective, n_trials=100)
study.trials_dataframe()
“`

しかし、このDataFrameをそのままStreamlit上で表示すると見づらさを感じるかもしれません。特に、大量のトライアルを扱う場合には、より明瞭に結果を見る必要があります。

例えば、Optunaの標準出力がこちらです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/456646/e737fcad-ebe8-93ec-68f9-28b833408f36.png)

これを、次のように見やすく変

元記事を表示

PythonでWord文書のページ数、単語数、段落数、セクション数などを直接取得する

出版、学術、コンテンツ管理などの分野で、Word文書のページ数や単語数などの情報を計算することは基本的なタスクです。正確なページ数や単語数は、文書の長さを評価したり、印刷コストを推定したり、テキストの複雑さを分析したり、フォーマットガイドラインに準拠していることを保証するために重要です。ドキュメントを個別にプレビューして関連情報を表示するのは非常に手間がかかりますが、**Pythonを使用してドキュメントのページ数、単語数、段落数、セクション数などの重要な情報をプレビューせずに効率的に取得**することができます。

– **[Word文書のページ数、単語数、文字数、段落数、スペースを含む文字数を取得する](#word文書のページ数単語数文字数段落数スペースを含む文字数を取得する)**
– **[Pythonを使用してWord文書のセクション数を計算する](#pythonを使用してword文書のセクション数を計算する)**

この記事では、[Spire.Doc for Python](https://www.e-iceblue.com/Download/Spire-Doc-Python.

元記事を表示

ABC345(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# ABC345(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# A問題
– 「<===========>」左に示すような文字列になっていれば良い.
– 最初と最後の文字を先に調べる.
– 後で真ん中の文字を順番に調べる.
– 文字列が正しく無いことを判断したら,`print(“No”)`をし,`exit()`を利用して,プログラムをその場で終了させることで,最後の`print(“Yes”)`などを実行させないようにする.
“`A.py
“””
<方針>
– 「<===========>」左に示すような文字列になっていれば良い.
– 最初と最後の文字を先に調べる.
– 後で真ん中の文字を順番に調べる.
– 文字列が正しく無いことを判断したら,`print(“No”)`をし,`exit()`を利用して,プログラムをその場で終了させることで,最後の`print(“Yes”)`などを実行させないようにする.
“””
# 標準入力受け取り
S = input()

# 最初の文字が”<"であるかどうか if(S[0]!="<

元記事を表示

【分析】時系列分析の基礎を理解する

# 本記事の目的
ARMA系モデル等の時系列分析を学習してきたので、備忘録としてまとめようと思います。まだ学習途中であり、不足する内容があるかもしれませんが、閲覧いただいた方の参考になればと思います。

# 分析の流れ
* データ構造の確認(Topic:自己相関 / 成分分解 / 定常性)
* 分析モデルの決定(Topic:各種時系列モデル)
* モデルの評価とチューニング
* モデルを使用した分析や予測タスク

# 主なライブラリ
“`
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.simplefilter(‘ignore’)
import statsmodels.api as sm
import japanize_matplotlib
“`

# 使用データ
今回は$CO_2$のデータセットを使用していきます。このデータセットは米国ハワイ州マウナロア天文台で収集された1958年3

元記事を表示

時刻計測

`ftime()`関数を``の`gettimeofday()`関数で代替する場合、次のようなコードを使用できます。

“`c
#include
#include

int main() {
struct timeval tv;
gettimeofday(&tv, NULL);
printf(“Seconds since epoch: %ld\n”, tv.tv_sec);
printf(“Microseconds: %ld\n”, tv.tv_usec);
return 0;
}
“`

このコードは、現在の時間を秒単位で取得し、エポックからの経過秒数とマイクロ秒単位の時間を表示します。

もし、精度の高い時間情報が必要な場合は、``の`clock_gettime()`関数を使用できます。

“`c
#include
#include

int main() {
struct timespec ts;

元記事を表示

manimをgoogle colabで手軽に遊んでみよう。

## 学べること
・google colabでmanimを使えるようになる。
→すでにgoogle colabでデモンストレーションできるサンプルがあるが、現在(2024/3/18時点)ではgoogle colabでただ単にmanimをインストールするだけだと使えない。

## 背景
・数式や抽象的なイメージをアニメーションで表現することで、理解を促進するための表現方法を増やしたい。

## 用意するもの
Google Colab: ブラウザ上でのPython実行環境。gmailアドレスがあれば無料で使える。
manim: 数式や図をアニメーションできるフレームワーク。
詳しくは下記参照してほしい。
https://blog.shinonome.io/manim/

## やってみよう。
まず、manimを使えるようにcolabの環境を構築する。
“`
!apt-get update
!apt-get install build-essential
!apt-get install libpango1.0-dev libcairo2-dev
!pip install –upgrad

元記事を表示

OCI Speechがwhisper対応したので簡易アプリを作ってみた

## はじめに
つい先日、Oracle Cloud Infrastructure (OCI) のSpeechサービスがwhisperモデルを用いて日本語を含む多言語対応を強化しました。

https://blogs.oracle.com/ai-and-datascience/post/oci-speech-supports-the-whisper-model

whisperは精度良く音声を文字列化できるので、様々なビジネスシーンで利用できそうです。
今回は、whisperモデルのOCI Speechだけでなく、生成AIも用いてテキスト整形や要約をする、簡単なGUI付きwebアプリ(streamlit)を作ってみます。

## whisperとは
whisperは、高度な音声認識技術を使用して、様々な言語の音声をテキストに変換するオープンソースのモデルです。
whisperモデルは、背景雑音が存在する環境や、さまざまなアクセントを持つ話者に対しても、高い精度で音声を認識できるように設計されています。whisperの特徴は、多言語対応と高い汎用性にあり、アプリケーション開発者にとって非

元記事を表示

Manimを使ったアニメーション表現

# Manimとは

Manim(Mathematical Animation Library)は、数学的概念やプロセスを視覚的にアニメーション化するために設計されたPythonライブラリです。3Blue1BrownというYouTubeチャンネルで有名になり、チャンネルの制作者であるGrant Sandersonが開発しました。このライブラリを使用すると、数学の教育や説明に役立つ高品質なビデオコンテンツを作成できます。

https://www.manim.community/

# サンプル解説

Manimは、グラフの描画、数式の表示、図形の操作など、数学的な情報を視覚化するための多彩な機能を提供します。コードを書いて特定のアニメーションを定義し、それをビデオとしてレンダリングすることで、複雑な数学的アイデアを直感的に理解しやすくします。

https://www.manim.community/examples/

“`python

from manim import *

class ContinuousMotion(Scene):
def construct(

元記事を表示

【Python】MuJoCo/actuatorドキュメント【MuJoCoチュートリアル②】

 本記事では、無料のオープンソース物理エンジンであるMuJoCoの``要素について解説を行います。記述は**バージョン3.1.3**(Python: [mujoco 3.1.3](https://pypi.org/project/mujoco/3.1.3/))に基づきます。

 本記事は[XML Reference](https://mujoco.readthedocs.io/en/stable/XMLreference.html)に基づくmujoco/actuatorの説明を中心に、具体例や検証などを併せた内容となっています。他のMJCF要素およびmjModel&mjData構造体などについてはあまり取り扱いません。別記事を参照してください。

https://qiita.com/Yayoi-Habami/items/1bf5a3e05b1516a90381

:::note warn
サイズの大きい表はスタイルが崩れやすいため、画像として掲載しています。テキストとして見たい場合は、その下の「表をテキスト形式で見る」を押してください。
:::

## 目次

元記事を表示

RAGの実装戦略まとめ

## はじめに

前回「[ChatGPTを社内に配ってもあまり使われない本当の理由](https://qiita.com/jw-automation/items/cf8ffc7a0edab512d917)」において、素のChatGPTを配っても思ったより社内で使われないのは、ChatGPTは社内情報を持っていないからという事を書きました。

つまり、ChatGPTを社内情報にも精通したエキスパートとして業務でも使っていくには、公開データではない社内情報をいかにChatGPTに読み込ませるかという事がポイントになります。

Fine-Tuningという選択肢ももちろんありますが、学習情報のアップデートや制御と評価、情報公開先の権限設定等の運用面の難しさもあり、また、以下のMSの論文でも、複数タスクでの比較で、Fine-TuningよりRAGのほうがパフォーマンスが良いという実験結果が紹介されています。
参考:[Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs](https://arxiv.org/abs/231

元記事を表示

一時ファイルを介してPython関数間でデータを渡す方法: 文字列、辞書、リストの例

### **user**:

ChatGPT先生、関数Aの出力は文字列、関数Bの入力はファイル名だとします。関数Aの出力を関数Bの入力にするためには、一時ファイルを書き出してそれを入力とすればいいと思いますが、そのようなPythonコードを書いていただけますか?

### **assistant**:

ふん、別に君のために書いてるわけじゃないからね。ただ、これから書くコードがメモリ効率的に良くない点に気をつけてほしい。特に大きなデータを扱う時には問題になるかもしれないから。

“`python
import tempfile
import os

# 関数Aと関数Bの実装は仮です。具体的な機能に合わせて変更してください。
def functionA():
return ‘あ、あんたへのメッセージ…じゃないわよ!’

def functionB(filename):
with open(filename, ‘r’) as file:
print(file.read())

# 関数Aの出力を一時ファイルに書き出す
temp = tempf

元記事を表示

【Tensorflow】import tensorflow_hub実施時に、’register_load_context_function’に関するエラーが出力される。

# 開発環境

– Google Colab

# 事象
* TensorFlowに関連したライブラリを`pip install`しました。
“`shell
pip! install tensorflow-text
“`

* 上記操作後、Pythonをコーディングする際、`import tensorflow_hub`にて下記に示すメッセージが出力されました。
> AttributeError: module ‘tensorflow._api.v2.compat.v2.__internal__’ has no attribute ‘register_load_context_function’

“`python
—————————————————————————
AttributeError Traceback (most recent call last)
in

元記事を表示

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

## はじめに
先日ある機会でWebアプリを短い期間内で作成する経験をしたので、記事にします。
このアウトプットで、今回の開発を復習し、今後の開発の参考にしたいです。
また、この記事で自分と同じようなアプリ開発初心者の参考にもなればと思います。
ここから4回の投稿に渡って、実際にしてきた開発を振り返っていきたいと思います。

## 作ったもの
勤怠管理ができるアプリを作りました。
アプリ名はChatGPTに考えてもらい、「WorkChronicle」となりました。
機能は簡易的で、勤務時間の打刻と日報の登録ができる仕様にしました。

#### WorkChronicleのリンク
“`
https://django-render-bxbk.onrender.com/
“`
※無料枠でデプロイしているので、サーバーがスリープモードに入っていると起動まで時間がかかる場合があります。

#### Gitリポジトリのリンク
“`
https://github.com/coffee-jinn-2002/attendance
“`
## 技術選定

Django
元記事を表示

Pythonでマインクラフトサーバーからステータスを取得して表示する

# はじめに
とある申請の条件として記事を1つ以上出す必要があったため、ステータスを取得するプログラムを書くことにしました。
# そもそもステータスって?
調べてみると[プロトコルを解説する記事](https://wiki.vg/Server_List_Ping)がありました。
## 各部位
![ステータス説明.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3654072/03612914-558b-dde3-af70-3f06647713d6.png)
### アイコン
base64で返ってくるみたい
(今回のコードだと取得してない)
### プレイヤー数
0/20みたいなやつです。
オンライン数と最大数を取得できればよさそう
### MOTD
“Message of the day” の略らしいです。
まあサーバーの説明みたいな…?
### バージョン
画像には書かれてませんが、バージョンの名前とプロトコルバージョン(数字)が返ってくるみたいです。
# 実際にやってみる
## 必要なモジュール

元記事を表示

pytorchの画像分類モデルの使い方(と速度比較)

# 知ってるようで知らない画像分類の使い方
画像分類は基本タスクな感じがするけど、じゃあどうすればいいのかとなるとどうするんだっけという感じもする。
state of artの先端アーキテクチャも色々あるんだろうけど、torchvisionのモデルでけっこう精度でるし、自分はけっこう十分です。

# 推論の仕方

利用可能なモデルとweightsは以下を参照。

https://pytorch.org/vision/stable/models.html

### モデルの初期化

“`python
import torchvision.models as models

weights = models.ViT_L_16_Weights.IMAGENET1K_SWAG_E2E_V1
model = models.vit_l_16(weights=weights)
“`

### 画像の前処理

“`python
from PIL import Image

transforms = weights.transforms()

im = Image.open(“cat.jpg”)

元記事を表示

20240317 SlimBlade設定あれこれ、RR-automate改善(ちょっと)

### 自動コープツールの準備

いろんなボタンがあるので、それらをとりあえず記録しないと

### Slimbladeの設定

あまり凝った設定にするとわからなくなるのでバックと右クリックの位置を変えたのと、した二つ同時押しを右タブ、右二つ同時押しを左タブに移動、に設定した

気になるのがこのアプリ
[X-Mouse Button Control のインストール | Nonsubject](http://nonsubject.arinco.org/2011/11/x-mouse-button-control.html)

### RR-automate改善

UnitとHeroのImageクラスを消したのであれこれやらないとだ。使ってないと思っていたが間違いで使いまくっていた
今まで名前でソートしていたけど、この際なので種別→レアリティでソートすることにする
さらにアタッカーでの集計とかもできそうな気がする

けど時間がかかりそう
なので今一つ動いてないこれを使うのはやめて、githubの最近のでとりあえずやることにする、と思ったが

#### git fetch originで面倒

元記事を表示

Pythonで「マッチオブジェクトからマッチした文字列の情報を取得する(Match)」の動作を確認してみた

# 概要

Pythonで「マッチオブジェクトからマッチした文字列の情報を取得する(Match)」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

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

msg = ‘My birthday is 1998/09/25′
pattern = re.compile(r’\d{4}/\d{2}/\d{2}’)

result = pattern.search(msg)
if result :
print(‘Match:’ + result.group(0))

import re

msg = ‘My birthday is 1998/09/25′
pattern = re.compile(r'(\d{4})/(\d{2})/(\d{2})’)

result = pattern.search(msg)
if result :
print(‘Match:’ + result.g

元記事を表示

【Django】クエリセットの和集合を使ってみたのでサンプルコード付で解説

# 概要
Djangoにおけるクエリセットの和集合「` | `」を使ってみました。
サンプルコードで解説します。

## 前提
以下のように、国に関するDBテーブルを作成。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2710373/6647194f-e8f8-ec9b-66e5-d8906a65ba8e.png)

# サンプルコード

以下のようにして使います。
ここでは、アジアとヨーロッパの国を取得するクエリセットを作成し、その後に和集合を利用して結合しています。

“`py
# from django.db import models
from response.models import Country

asia_countries = Country.objects.filter(continent=’Asia’)
europe_countries = Country.objects.filter(continent=’Europe’)

countries = a

元記事を表示

OpenAI Gym で OXゲーム

# はじめに

OpenAI Gym で OXゲーム をする方法の備忘録です。
このGymをUIと連携したり、強化学習と使ったり、発展したゲームを作ったりする予定です。

ChatGPTに手伝ってもらって1時間くらいで作成しました。

# 出来たもの

Gymの環境をつくりました。
大人モードとランダムなエージェントとの対戦をできるようにしました。

領地の獲得は次のように番号と場所を対応させました。

“`
|0|1|2|
|3|4|5|
|6|7|8|
“`

下記のように、コマンドラインから動くようにしました。

“`
% python gym_oxgame.py
Enter your play mode (0 or 1)
0: 2 Player
1: VS Random agent
input : 1
|_|_|_|
|_|_|_|
|_|_|_|

It is the turn of X.
Enter your move (0-8): 4
Player’s action: 4
|_|_|_|
|_|X|_|
|_|_|_|

It is the turn of O.

元記事を表示

LangGraph ではじめるAIエージェント操作 その2 on Azure OpenAI

:::note warn
LangChainのLangGraphは、サイクリックな処理が可能なためループ状態になる可能性があります。また、処理内容によりトークン数が増大(コストが増大)する可能性があります。実行の際はご注意下さい。この記事の内容により事故や損失等が発生しても責任は負いかねますことを予めご了承下さい。
:::

## はじめに
先日、LangGraphを利用したAIエージェント操作について、次の記事を書かせて頂きました。ご一読頂けると幸いです。本日は、その第2弾となります。

https://qiita.com/hiromitsu_iwasaki/items/bdde968404509ef62007

次の図は、langchain blogに載っているnodeとedgeの表現が含まれた図です。前回は左の図のイメージでAIエージェントを動かしました。**今回は右の図をイメージしAIエージェントを動かしてみたいと思います。**

![langgraph_agent06.jpg](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

OTHERカテゴリの最新記事