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

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

TkInterでmatplotlib.pyplotを使用したときにプログラムが終了しない不具合

# プログラムが正常終了しない
以下のプログラムを実行したときに,表示されたウィンドウを閉じてもプログラムが終了しないという不具合が発生しました.
“`min.py
import tkinter
import matplotlib.pyplot as plt

root = tkinter.Tk()

plt.figure()
# … グラフを表示するための処理

root.mainloop()
“`

# 解決策
`plt.close()`を追加
“`solution.py
import tkinter
import matplotlib.pyplot as plt

root = tkinter.Tk()

plt.figure()
# … グラフを表示するための処理
plt.close()

root.mainloop()
“`

元記事を表示

R言語とPythonの違いを解説!データ分析と可視化で選ぶならどちらがおすすめ?

データ分析の世界に足を踏み入れる際、多くの方が直面する疑問の一つが「R言語とPython、どちらを学ぶべきか?」というものです。この疑問は、特にデータサイエンスや機械学習の初心者にとって、進むべき道を選ぶ上での大きな障壁となります。

そこで本記事では、R言語とPythonの違いを明確に解説し、それぞれの言語が持つ強みや適用シーンについて詳しく説明します。最後までご覧いただくことで、データ分析の目的やプロジェクトの要件に最も適した言語を選択できるでしょう。

正しい選択をすることで、データ分析の効率や成果を最大化し、あなたのキャリアやビジネスにおける競争力を高めることができますので、ぜひ参考にしてください。

R言語とPythonの違い

データを扱う時、どのツールや言語を使うかは大きな選択です。特に、R言語(R)とPythonは、データ分析の世界でよく使われる主要な言語として知られています。

一方、それぞれの言語には、得意なことや特徴があります。それでは、R言語とPythonではどういった違いがあるのでしょうか?ここでは両者の違いをそれぞれ解説します。

R

元記事を表示

Matplotlibで日本語を表示する

## 問題の背景

matplotlibでグラフを描画した際にタイトルや軸のラベルが日本語だと文字化けしてしまうという問題があった。
クライアント向けの資料などにグラフを使用する際にt不便なので、日本語を表示する方法を調べた。

## matplotlibに日本語に対応しているフォントがあるか確認する方法

“`python

import matplotlib

#matplotlibのディレクトリを確認する。
print(matplotlib.matplotlib_fname())

#matplotlibに追加されているフォントの一覧を取得する。
fonts = set([f.name for f in matplotlib.font_manager.fontManager.ttflist])
print(fonts)

# 日本語で使用できるかを確認する方法

# フォントの表示
for i, font in enumerate(fonts):
plt.text(0, i, f”日本語:{font}”, fontname=font)

# 見やすいように軸を

元記事を表示

Distribution Map(StepFunctions)の限界を知った話

## はじめに
昨年のre:Inventで発表されたStepFunctionsの新機能である、Distribution Mapは我々開発者にとってかなり強力な機能だと思います。
(Distribution Mapがどんな機能かは、[リンク](https://qiita.com/saba_miso/items/3309348bb46d50dea158)を確認してみてください。)

今回はDistribution Map(Step Functions)を利用して分かった「限界」に関して記録したいと思います。

## 目次
1. 何をしたかったか。
2. やったこと・起こったこと
3. どのように乗り越えたか
4. まとめ

### 1. 何をしたかったか。
我々は開発フローの中でCICDでデプロイされるWeb資材をS3にビルドを実施しています。
さらにそのWeb資材をユーザー毎に展開していくために、これまではVBAツールを利用して1ユーザーずつコピーを行っていました。
(1つずつ行うのは、ユーザー毎にWeb資材のカスタマイズがあるため、一括コピーができないため)

ただこのツールはお察しの

元記事を表示

LangCheckで探る:LLMの信頼性をどう評価するか

# はじめに
みなさん、こんにちはM&Aクラウドの尾村です。弊社でも積極的にLLMを使っていこうといくつかPJが進んでいるのですが、その中で気になるのがLLMが出力したものが本当に使えるかどうかの確認です。残念ながら、LLMの出力に関して注意や条件をどれだけプロンプトに命じていたとしても、必ず守ってくれるわけではありません。そのようなLLMの問題を和らげるために信頼性評価のツールが開発されています。今回はそんなLLM評価ツールの中でも、日本のスタートアップ[citadel AI](https://www.citadel.co.jp/)社が公開しているOSSツール[LangCheck](https://github.com/citadel-ai/langcheck)を試してみました。

# LangCheckとは
LangCheckの特徴は、公式によれば、シンプルでpythonらしい記述が可能です。また、生成されたテキストを評価するための仕組みなので、どのようなLLMを利用していても問題なく利用できます。日本のスタートアップが開発しているため、英語と日本語に対応しているのも嬉しい点ですね

元記事を表示

【Azure】E5 から得た埋め込みを Cognitive Search で検索できるようにする

Azure Cognitive Search を用いて、手元にあるテキストの埋め込み表現(Embeddings)を使った類似文章検索の機能を実装する機会がありましたので、その方法についてざっくりと紹介します。

# 必要なライブラリ

– PyTorch
– Requests
– tqdm
– Transformers

# 1. E5 から埋め込みを得る

今回は埋め込み表現を [Multilingual-E5-large](https://huggingface.co/intfloat/multilingual-e5-large) から取得します。

E5(**E**mb**E**ddings from bidir**E**ctional **E**ncoder r**E**presentations)は、文章をその意味や文脈に応じたベクトル(埋め込み表現)に変換するためのモデルです。[E5を発表した論文](https://arxiv.org/abs/2212.03533)では、様々なタスク・データセットにおいて、既存の文章埋め込みモデルと比べ E5 が良好な性能を示すことが報告さ

元記事を表示

ハスケル子「それ、f-string(f文字列)使ってみたらどうですか?」

# お仕事中ワイ

ワイ「ちょいちょい、ちょいっと!」
ワイ「あっ」
ワイ「ま~た読みずらいコードを錬成してしまったで」
“`python
def format_name(last: str, first: str, kana_last: str, kana_first: str) -> str:
return last + ” ” + first + ” (” + kana_last + ” ” + kana_first + “)”
“`
ワイ「↑なんで文字列の結合って」
ワイ「整形後がどうなるかパッと見でイメージしずらいんやろな~」

ハスケル子「**それ、f-string(f文字列)使ってみたらどうですか?**」

ワイ「ファッ!?」
ワイ「えくすとりーむ!!?」

ハスケル子「ちょっと何言ってるかわかんないです」

ワイ「せやな」
ワイ「ほんで、なんやったっけ?」

# f-string(f文字列)とは

ハスケル子「f-string(文字列)です」
ハスケル子「`Python3.6`で導入された機能で」
ハスケル子「文字列に変数や式の結果を展開してくるものです」

元記事を表示

コマンドを mac のアプリにする

# よく忘れるのでメモ

以下のようなコマンドを自作している。

mac の App バンドル用は .app ファイルにしてくれる make_app というコマンド。

て便利だけど、たまにしか使わないのでググったり gpt ったら出てくるようになったらいいので、ここに書いておく。

コードは以下

https://github.com/amachang/homebrew-random-scripts/blob/ff8d5db204db1b585b101fd4b8a7c6414a7b5deb/python/random_scripts/make_app.py

# 使い方

“`
make_app -c ‘mdimport -i /Volumes/HDD-* ~/Downloads’ -a /Applications/Reindex.app
“`

上の例だと Reindex.app が生成され、その app を実行すると mdimport コマンドを実行して Spotlight の index を更新してくれる。

# 作ったアプリは

Finder のカスタムバーに入れておくと

元記事を表示

ChatGPT3.5を使って、ソートアルゴリズムの可視化のコードを作成しました。継続更新する予定

# こんにちは!二度目の投稿です
今回のテーマはタイトルの通りです
# 説明
今回の記事では、ChatGPT 3.5を利用して、ソートアルゴリズムの可視化コードを完全にGPTに委ねて作成しました。実際、GPTは今年から注目を集めていますが、私は初版が2020年に発表された動画を最初に見て以来、ずっとその存在を知っていました。もうすぐchatGPTが一年になりますね。

普段のコードでエラーが発生し、Googleで調べても解決できない場合、私はGPTに質問して解決してもらっています。そこで、アルゴリズムが苦手な人や学びたい人に向けて、ソートアルゴリズムの可視化を見せることを考えました。もちろんネットで画像やスマホアプリもありますが、それでもできたら面白いと思ったんです。具体的なアイデアは、pygameを使用してホーム画面でアルゴリズムを選択し、スペースキーでソートアルゴリズムの可視化とその説明文も作成して表示するというものです。これらのアイデアをGPTに任せて実現しました。

# 会話のプロント多すぎるので一番最初の会話だけここで置きます
自分: ユーザーがpygameを利用してプログ

元記事を表示

オセロコンピュータを超単純アルゴリズムで実装

## 近況報告
AIの研究室に所属している先輩にオススメの本を何冊か教えていただき、たまに学びの定着のため簡単なものを作りながら、ただひたすら座学していました。初めてAIについて体系的に学ぶことができて、前に比べればかなり知識がつきました。
ただ、肝心の深層学習について、パソコンのスペック、データ収集などなすべき課題が多く、億劫になりまだなにも作れていません。
自分でいろいろ調べながら、近日中に挑戦しようと思います。

「このままではいけない」という焦りがありつつも、大学、バイトの時間で有害な安心感を得てしまう。停滞に慣れることがないよう、精進します。
## アルゴリズムについて
現在置ける候補の場所について、それぞれ置いた際の勝ち負けの期待値を推測、一番期待値の高い場所に置く。
期待値推測は、置いた場所からエピソード終了まで両方方策ランダムで試行、これをε-Greedyで任意の回数行う。

ただこれだけ。価値関数などは設定してないです。
## 結果
・設定
ε:0.2
一手当たりの試行回数:150回

ランダムに置くコンピュータと100回対戦させた結果、勝ち96回、引き分け1回、負け

元記事を表示

ChatGPTと作る 和歌生成AI : 3. n-gram 失敗編

皆さんこんにちは。今日も引き続きChatGPT先生をお迎えして、「ChatGPTと作る 和歌生成AI」のさらなる続編をしたいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

もちろんです、よろしくお願いいたします。私たちが和歌を作るためには、その形式とストラクチャを理解することが大切です。それでは、和歌の基本的な構造を一緒に見ていきましょう。

伝統的な和歌の形式は「5-7-5-7-7」の音節構造で、それぞれの部分が具体的なイメージや感情を表現します。前3行は「上の句」、後ろ2行は「下の句」と呼ばれます。和歌は一般的に自然や季節、愛、悲しみ、喜びなどのテーマを含んでいます。

それでは、具体的な和歌の例を作ってみましょう。どんなテーマにしたいですか?

### **user**:

今回は n-gram トークナイザーをテーマにしたいと思います。詳しく解説していただいてよろしいでしょうか?

### **assistant**:

それは非常に面白いテーマですね!「n-gram トークナイザー」を

元記事を表示

確率統計学・統計検定学習備忘録 ④標本平均と平均(値)に関する公式の意味の違い

普段より、自分のプログラミング等に関する質問に答えて下さっている皆様ありがとうございます。m( _ _)m よろしければ統計検定の学習等にご利用ください(自分はそもそも存在を知ったのが10月末で、来年受けます。※1年計画です。)

標本平均の定義と(数Ⅰ、数Bの標本平均の手前で習う)平均(値)との違い

標本平均の定義は次の通りです。(自分が持っている「青チャート数学Ⅱ・B」より)

「母集団から大きさ $n$ の標本を抽出し、変量 $x$ についてその標本のもつ $x$ の値を
$X_1$、$X_2$、・・・・・、$X_n$ とする。この標本を1組の資料とみなしたとき、
その平均値
“` math
\begin{align}
\frac{1}{n} \sum_{i=1}^n X_i = \frac{1}{n}(X_1+X_2+・・・・・、+X_n)
 を標本平均といい、\overline{X}と表す。」
\end{align}
“`
___
これに対し、数Ⅰのデータの分析で出てくる平均値の定義は次の通り
(自分が持っている「青チャート数学I・A」より)

「大きさ $n

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その29 文字列で表現する xy 座標

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/6ca248133ff4d59a81d4

# 実装の進捗状況と前回までのおさらい

## 〇×ゲームの仕様と進捗状況

1. `正方形で区切られた 3 x 3 の 2 次元のゲーム盤上でゲームを行う`
2. `ゲーム開始時には、ゲーム盤のすべてのマスは空になっている`
3. `2 人のプレイヤーが遊ぶゲームであり、一人は 〇 を、もう一人は × のマークを受け持つ`
4. `2 人のプレイヤーは、交互に空いている好きなマスに自分のマークを 1 つ置く`
5. `先手は 〇 のプレイヤーである`
6. __プレイヤーがマークを置いた結果、縦、横、斜めのいずれかの一直線の 3 マスに同じマークが並んだ場合、そのマークのプレイヤーの勝利とし、ゲームが終了する__
7. __すべてのマスが埋まった時にゲームの決着がついていない場合は引き分けとする__

仕様の進捗状況は、以下のように表記します。

*

元記事を表示

Prophetを使用した株価予測

このコードは、特定の株式の過去の価格データを取得し、そのデータに基づいて将来の株価を予測するためのPythonスクリプトです。主に次のステップで構成されています:

1. **必要なライブラリのインポート**:
– `datetime`と`pandas`はデータ操作に使われます。
– `Prophet`は時系列予測に使われるFacebookのライブラリです。
– `plotly.graph_objs`はインタラクティブなグラフ作成に使用されます。
– `pandas_datareader`は金融データの取得に使用されるライブラリです。

2. **`pandas_datareader`のインポートチェック**:
– `pandas_datareader`がインストールされていない場合、エラーメッセージを表示してスクリプトを終了します。

3. **株価データ取得関数(`get_stock_data`)**:
– この関数は指定された銘柄コード(`meigara_cd`)、開始日(`from_date`)、終了日(`to_date`)に基づ

元記事を表示

Pythonでシリアル通信

# はじめに
Raspbeiry Pi Pico等の電子デバイスをシリアル通信(UART)で制御する場合、Windows PCであれば、定番のTera Termを使えばよいが、あえてPythonでシリアル通信をする方法がないか?を調べてみたので記事にする。

# 目次
+ [pyserial](#pyserial)
+ [ポート番号のリストとポートのオープン](#ポート番号のリストとポートのオープン)
+ [シリアル通信の送信・受信](#シリアル通信の送信受信)
+ [シリアル通信例](#シリアル通信例)

## pyserial
Pythonでシリアル通信するライブラリに“`pyserial“`がある。“`pip install pyserial“`でライブラリをインストールする。pyserialはRTS/CTSのフローコントロールもできるよう。今回はTx/Rxのみ使う。ドキュメントは下記。

https://pyserial.readthedocs.io/en/latest/

[戻る](#目次)

## ポート番号のリストとポートのオープン
ポート番号のリストは“`se

元記事を表示

Selenium Chrome Driver 現在のダウンロードフォルダ指定方法

## Selenium Chrome Driverのダウンロードフォルダの指定が効かない
2023年に入ってからSeleniumでダウンロードフォルダを指定しても有効にならなくなった。
download.default_directoryは、ヘッドレスモードでは使えるようだが、そうでない場合には反映されないようになったようだ。

## 対策
chrome driverのインスタンス作成後に1回だけPage.setDownloadBehaviorを設定すればいいらしい。
ただし、setDownloadBehaviorはDeprecatedになっている。
~~~python:t.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

download_dir = “c:\\test\\” #ダウンロードフォルダ

chrome_service = ChromeService(executable_path= ‘C:\\chromedri

元記事を表示

AI ログの取得補助

ChatGPT や Bard などでは個別のチャットのログ全体を Markdown で取得することができないようです。ChatGPT では全ログをエクスポートすることはできますが、個別ログの取得に使うのは非効率です。

スクレイピング的なことをすると問題になるかもしれないため、ログのコピーは手動で行って、スクリプトでクリップボードを監視することでペーストせずに自動的に記録してみました。

この方法は基本的に手動のためあまり省力化にはなっていませんが、汎用性があるので Bing AI や Claude などでも使えます。

# 準備

Python を使用します。pip などで [pyperclip](https://github.com/asweigart/pyperclip/tree/master) をインストールしてください。

# コード

“`python:copy_log.py
import sys, os, io, pyperclip

if len(sys.argv) != 2:
print(f”Usage: python {sys.argv[0]} file”

元記事を表示

【Python】散乱しているAccessのDB情報を取得する(後編)

# 前回の続き
https://qiita.com/MinaraiProgrammer/items/4514daf48739d6997687

# 目標
* 検索用のExcelシートとして出力
* 結果をデータベース化する ※今後予定

# 参考資料
下記資料を参考にさせていただきました。ありがとうございました。

・Excelオートフィルタ設定 について

OpenPyXLでエクセルのオートフィルタ設定をしたい

# 手順
使用するライブラリをインストールしておく。
“`:コマンドプロンプト
$ pip install pyodbc
$ pip install pandas
$ pip install openpyxl
“`
>pandas
データを効率的に扱う(取込・加工・集計・分析)ためのライブラリ
今回は、DataFrame変換・Excel出力に使用

>openpyxl
PythonからExcelファイルを操作するためのライブラリ
今回は、Excelを開く・フィルタ設定・保存に使用

下記のPythonコードを実行する。

元記事を表示

1人アドカレの準備まとめ(生成AIについて25記事書きます!)

# はじめに
今年は1人アドカレにチャレンジします!(アドカレのトピックは生成AIにしました)
この記事では、1人アドカレ(とても大変)に向けての準備をQ&A形式でまとめようと思います。同じようにアドカレ(1人アドカレに限らず)に挑戦しようとしている方の参考になれば嬉しいです。一緒に頑張りましょう!

# 1人アドカレの準備のQ&A形式でのまとめ

## Q1: なぜ1人アドカレに挑戦しようと思ったの?
Qiitanぬいぐるみが欲しいのです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627015/b97a19a2-23fc-0f42-3911-a7f27fab5efb.png)

## Q2: なぜ生成AI?
今年はあまりにも生成AI分野の発展が目覚ましかったです。(おそらくほとんどの人類が)インプット過多になっていて、アウトプットを増やしたいと考えました。トピックを1つに絞ったのは、制約からアイデアが生まれると思ったからです。

## Q3: 生成AIについて現時点ではどの

元記事を表示

ABC329の解説記事 (PyPy3 ABCD)

# はじめに
問題は[こちら](https://atcoder.jp/contests/abc329/tasks)
初心者(灰色〜茶色)向けです。
# A – Spread
https://atcoder.jp/contests/abc329/tasks/abc329_a
## 考え方
文字列を1文字ずつのリストとして受け取り、半角スペース区切りで表示すればよいです。
リストを「*」をつけて引数として渡すと、各要素が個別変数として渡されます。
このとき、各要素間の区切り文字はデフォルトで半角スペースです。

https://note.nkmk.me/python-print-basic/

## 解答例
“`Python3:私の解答
print(*list(input()))
“`
# B – Next
https://atcoder.jp/contests/abc329/tasks/abc329_b
## 考え方
重複を除き2番目に大きい自然数を表示する問題です。
重複を除く → Setを利用すればよさそう
と考えられるとシンプルに解けます。
1. 入力をSetとして受け取る
1

元記事を表示

OTHERカテゴリの最新記事