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

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

google colabでClaude3 APIサービスを触ってみる

## はじめに

 昨日、「鯱.py」という勉強会でClaude3 APIを触ったので覚書がてら記事にしたいと思います。

## Claudeとは

 ClaudeはAnthropic社が開発したAIアシスタントです。(ざっくり言うとAnthropic社の作ったChatGPTみたいなものです。もともとAnthropic社はOpenAIでGPTの研究をしていた技術者が設立した会社です。)
 以下、ClaudeによるClaudeの説明。

 Claudeの主な特徴は以下の通りです:

– 自然言語対話が可能で、様々な質問に対して適切な回答を提供できます
– 文書の要約、分析、ライティングなどの作業をサポートできます
– プログラミング、数学、一般知識などの幅広い分野の質問に答えられます
– 2023年8月時点での最新の知識を持っており、それ以降の出来事については2023年8月時点の視点から回答します
– 人間の対話相手として振る舞い、適切な言語表現を心がけています

 Anthropic社はClaudeを通じて、人工知能技術の可能性を示し、人々の生活に有意義な影響を与えることを目指して

元記事を表示

【Streamlit】AxiosError: Request failed with status code 403の対処

Streamlitで作成したアプリにて、ファイルをアップロードした時にこのエラーが発生します。
“`
AxiosError: Request failed with status code 403
“`

このエラーの解決策としては公式のフォーラムで投稿されていました。

https://discuss.streamlit.io/t/axioserror-request-failed-with-status-code-403/38112/8

一旦、Streamlitのバージョンを1.24.0に下げました。これで問題なく動作しました。
ちょっと前にチャットアプリを作成した時、バージョンを更新したのが原因ですね。

https://qiita.com/sugimochi_1019/items/ede15dcacddfde36df4e

最新のバージョンではfile_uploadは使えないのかもしれません。
とりあえずメモ代わりに書いておきますが、詳細な原因はまた投稿するかもしれません。

元記事を表示

k-means法を用いた野球データの可視化

# はじめに
対象読者
・AIについて学習をはじめた方
・機械学習の手法について学んでいる方
・k-means法を試してみたい方
# 動作環境
・Windows10
・CPU:CORE i7
・GPU:RTX3060ti
・メモリ:32GB
・Python:3.8.10
# 背景
この記事を作成するきっかけは、AIに興味をもち、G検定ジェネラリストの資格勉強をはじめたことでした。勉強をはじめた頃は、集中力もなく長続きしなそうだったので、趣味(野球)を題材としてAIの手法を試すことにより楽しく学習できるのではないかと思い、実装を試すことに至りました。
私自身AIについて初心者、また野球データを取り扱うのは初めてですが、この記事をきっかけに趣味とAIが簡単に結び付けられると思っていただければ幸いです。
# 試したこと
MLBでのチームごとのバッターとピッチャーのデータを用いて、チームの特徴を視覚的にわかりやすくしてみました。手法としてk-means法を用いました。
手順としては以下の流れで行いました。
①データの準備
②データの読み込み
③データの標準化
④k-means法の実行

元記事を表示

複数の.envファイルを使いこなす

## はじめに
複数の.envファイルに関しての備忘録。

## 🦁**結論**🦁
.envファイルの名前を変えることで、異なる環境(開発、テスト、本番など)に合わせた設定を用意し、管理をしやすくすることができる。
自身の環境で使うもの
テスト環境で使う APIキーを保管してるもの
複数のアカウントを保管
など様々な利用用途に合わせて大事なファイルを保管しておいておける。

:::note info
押さえておくべき点
* envファイルはキーと値のペアで環境変数を定義(環境変数は全て大文字)
* python-dotenvライブラリを使って.envファイルを読み込み、環境変数を設定でload_dotenv()関数にて読み込む
* 環境ごとに合わせたファイル名を付けることができる(例 .env.development、.env.test、.env.production)
* load_dotenv()関数のoverride=Trueパラメータを使って、既存の環境変数を上書きできる。
* gitignoreなどを活用して公開リポジトリには含めないようにする。
:

元記事を表示

初めて学ぶPython 環境編

Pythonを学ぶにあたって自分のPCで勉強用の環境を構築します。

①Anacondaのインストール

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765031/438abf85-38f9-2c35-15b6-09c2a72183ce.png)

アナコンダはデータサイエンスに特化したプラットフォームでライブラリーや便利な機能を有しています。
Pythonなどのデータサイエンスに使われる言語のライブラリーも含まれています。
Pythonや仮想環境を整えることができます。

②仮想環境構築

ANACONDA.NAVIGATORを開き
EnvironmentsタグからCreateを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3765031/835d5972-c222-6997-e952-4884055b9

元記事を表示

[Python / pytorch] CUDA error: device-side assert triggered CUDA kernel errors の原因調査

# エラー内容

目についたエラーはこちら。

“`bash
RuntimeError: CUDA error: device-side assert triggered CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
“`

他にもこんなメッセージが出ていた。

“`bash
from the models weights: update the call to weights.transforms(antialias=True).
warnings.warn(
../aten/src/ATen/native/cuda/Loss.cu:250

元記事を表示

Pythonで比較演算子を再定義する

## 問題

以下の問題を解きたい。

> Find the most frequent K words in the list of words.
> **_If there are multiple words with the same frequency, prioritize the lexicographically smaller one._**
> Returned array does not need to be sorted.

## 解答

以下のようにヒープを使いたい。

“`py
def top_k_words(words, k):
top_words = [] # as min heap length k.

for word, cnt in Counter(words).items():
# 出現回数がkより多くなったら、以下の優先順位で要素をヒープからpopしたい。
# – 出現回数の少ないもの
# – その中では辞書順で後ろ側のもの
heappush(top_word

元記事を表示

ABC348 with Python (A~E)

ABC348のA~E問題をpythonで解説していきます。今回のC問題は平和でしたね(・∀・)

# A – Penalty Kick
## 問題

高橋君はサッカーの試合で $N$ 回ペナルティキックを蹴ります。

高橋君は $i$ 回目のペナルティキックでは、$i$ が $3$ の倍数の場合は失敗し、それ以外の場合は成功します。

高橋君がペナルティキックを蹴ったときの結果を出力してください。

https://atcoder.jp/contests/abc348/tasks/abc348_a
## 考察
問題文の通り、3の倍数回目のペナルティキックではx、それ以外はoとすればよい。

## コード
“`python:A.py
N = int(input())
ans = []
for i in range(1, N + 1):
if i % 3 == 0: # 3の倍数回目ならば失敗
ans.append(“x”)
else:
ans.appe

元記事を表示

約数の総和がある数の倍数かを判定する

約数の総和は[約数関数(Wikipedia)](https://ja.wikipedia.org/wiki/%E7%B4%84%E6%95%B0%E9%96%A2%E6%95%B0)によると以下のように$\sigma$で表されます。

“`math
\begin{align}
&\sigma(n) = \sum_{d|n}d \\
&nの小さい順にならべると \\
&1, 3, 4, 7, 6, 12, 8, 15, 13, 18, 12, 28, 14, 24, 24 … \\
&となります
\end{align}
“`
ここで例題を考えます。

**【例題1】$N = 10^3$以下の正の整数でその約数の総和が67の倍数になっているものの和を求めよ**

これを素直に求めると以下の4つの整数が求まります。

“`python
import sympy as sp
def sigma(n):
return sum(sp.divisors(n))

m, N =67, 10**3
ans = 0
for n in range(1,N+1):
s = sigma(n)

元記事を表示

Azure OpenAI ServiceのWhisper APIをPythonから使用する

作成日:2023年10月07日(土)

## 1.はじめに

2023年7月23日(日)のMicrosoftの[Blog記事](https://techcommunity.microsoft.com/t5/azure-ai-services-blog/openai-whisper-is-coming-soon-to-azure-openai-service-and-azure/ba-p/3876671)でOpenAIのWhisperがMicrosoft Azureでもうすぐ使えるようになるというアナウンスがありました。
首を長くして待っていたら、2023年9月15日(金)のAzure AI ServiceのBlog記事「[OpenAI Whisper is Coming Soon to Azure OpenAI Service and Azure AI Speech – Microsoft Community Hub](https://techcommunity.microsoft.com/t5/azure-ai-services-blog/openai-whisper-is-comi

元記事を表示

サクッと API を作ろう|FastAPI, Hugging Face,Docker,Python

## はじめに

API として提供することで、アプリケーションへの統合が容易になります。この記事では、FastAPI と Hugging Face を使用して、シンプルな API を素早く構築し、デプロイする方法を紹介します。
Google Croud Runを試行錯誤しましたが、うまくできませんでした。hugging faceならさくっとできました。

## 前提条件
– Hugging Face のアカウントを持っていること

## 手順

### ステップ 1: サンプルの Hugging Face Space を複製する

https://huggingface.co/spaces/tregu0458/FastapiSample

1. Hugging Face にログインします。
2. `https://huggingface.co/spaces/tregu0458/FastapiSample` にアクセスします。
3. ページ右上の “Duplicate this Space” ボタンをクリックします。
4. “Duplicate Space” ダイアログが表示された

元記事を表示

Pythonで「テキストファイルへ書き込む」の動作を確認してみた

# 概要

Pythonで「テキストファイルへ書き込む」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`sample.py
f = open(‘myfile.txt’, ‘w’, encoding=’UTF-8′)
f.write(‘こんにちは\n’)
datalist = [‘お元気ですか?\n’, ‘それではまた\n’]
f.writelines(datalist)
f.close()

f = open(‘myfile.txt’, ‘a’, encoding=’UTF-8′)
f.write(‘それではまた\n’)
f.close()
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
$ cat myfile.txt
こんにちは
お元気ですか?
それではまた
それではまた
“`

# まとめ

何かの役に立てばと。

元記事を表示

【pybullet】移動ロボットの超音波センサを模擬する

お疲れ様です。秋並です。
今回は、pybulletで超音波センサを模擬する方法について紹介します。

本記事で紹介するコードを実行すると、下動画のような
– 移動ロボットが前進し、ロボットが障害物に一定以内まで近づくと停止する

といったシミュレーションが実現できます。
![ultrasonic.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2030125/ef53a959-c865-1eb9-fbf4-4398cf77c394.gif)

# 超音波センサの模擬
pybulletでは、`rayTest()`という関数を使用することで「レイキャスト」を実施することが出来ます。

“`
hitResult = pybullet.RayTest(rayFrom, RayTo)
“`
– `rayFrom`:レイキャストの開始位置([x, y, z])
– `rayTo`:レイキャストの終点([x, y, z])

## レイキャストとは
レイキャストとは、下図のように「ある地点から特定の

元記事を表示

【たちまちメンテされなくなりそうな便利系スクリプトライブラリ】アカデミック編 ORCID

# ORCID パブリックAPIを使って研究者の業績データを取得する、たちまちメンテされなくなりそうなライブラリ

## 概要
所属する研究室で ORCID の公開データから業績一覧を取得して自動でホームページを更新できるようにするといったプロジェクトが最近ありました。

よくありそうな自動化プロジェクトの一種かと思います。

ただ案外、ORCIDのパブリックAPIに関するドキュメントが見当たりません。公式のドキュメントも researcher_id を持っている研究者自身が使うAPIに関してのものがほとんどでした。

ということで、いわゆる直ぐにメンテナンスされなくなる系のPython便利系スクリプトライブラリを公開しました。

https://github.com/passive-radio/retrieve-orcid

## インストール
“`bash
pip install git+https://github.com/passive-radio/retrieve-orcid.git
“`

## 使い方
今のところコマンドラインから業績を取得する機能に対応しています。

元記事を表示

AtCoder初心者振り返りメモ ABC348

# ABC348の回
https://atcoder.jp/contests/abc348
# A-問題
https://atcoder.jp/contests/abc348/tasks/abc348_a

[問題文]
髙橋君はサッカーの試合で N 回ペナルティキックを蹴ります。
髙橋君はi 回目のペナルティキックでは、i が 3 の倍数の場合は失敗しそれ以外の場合は成功します。髙橋君がペナルティキックを蹴ったときの結果を出力してください。

[考察や感想]
蹴る回数を % 3 で判定し、3の倍数のときは、失敗 x を出力
それ以外は、成功 o を出力する。問題通りにロジックを記述して正答できました。

““Python:A.py
N = int(input())

ans = “”

for i in range(1,N+1):
if i % 3 == 0:
ans += “x”
else:
ans += “o”

print(ans)
““
# B-問題
https://atcoder.jp/contests/abc348/

元記事を表示

ローカルファイルを使ったライブラリインストールでハマったお話

# きっかけ
ローカルにダウンロードしたライブラリのインストールのお話です。
訳あってインターネット接続の無いパソコンへのライブラリのインストールをしなきゃいけない。ま、いろいろありますわな。セキュリティーポリシーとかね。
それも複数台のパソコンに一気にインストールしたい。ああ、インターネットが欲しい。w

そんな時に、ライブラリのインストールを自動化しようとしてハマったお話。

# おさらい:ローカルファイルからのインストール方法
欲しいライブラリはPypi.orgから探してきます。バージョンはよく気を付けて。
ほんで、ターミナルで以下を実行するとインストールできます。
“`
pip install –no-index –find-links=ライブラリを入れたフォルダ名 ライブラリ名
“`

# 環境
今回は訳あってWindows11(久々に使った)
Python3.10.8

# ライブラリの依存関係
ライブラリには依存関係があります。(リンク参照)
Aと言うライブラリをインストールするためにはBとCのライブラリがインストールされてないとだめよ~とか、そんな関係があ

元記事を表示

ABC348をPythonで(A~D)+Eの感想

トヨタ自動車プログラミングコンテスト2024#4(AtCoder Beginner Contest 348)の解放等のまとめ

https://atcoder.jp/contests/abc348

# A問題
ooxを$N$個以上まで増やして、そこからスライス
“`python:A
s = “oox” * 50
print(s[:int(input())])
“`
# B問題
距離を計算して一番遠いところを答える
ただ、ルートをとると小数点の計算になって精度誤差が怖いのでルートをとる前で比較する
“`python:B
n = int(input())
p = [list(map(int, input().split())) for _ in range(n)]

for x, y in p:
ans = 0
dist = 0
for i, (x_i, y_i) in enumerate(p, 1):
if dist < (x_i - x) ** 2 + (y_i - y) ** 2: dist = (x_i - x

元記事を表示

時系列データから現在と未来に対する同時確率行列を生成

### Step0. パッケージを用意
~~~python:
import numpy as np
import matplotlib.pyplot as plt
import random
~~~

### Step1. 写像を定義
~~~python:写像を定義
def f(x, alpha):
y = 1 – alpha*x*x
return y

def coupled_f(x_list, alpha, e):
total = 0
y_list = []
num = len(x_list)

for n in range(num):
total += f(x_list[n], alpha)
for n in range(num):
y_list.append((1 – e) * f(x_list[n], alpha) + (e / num) * total)
return y_list
~~~

### Step2. 時系列データを生成しそれぞれの差に変換
~~~python:時系列データを生成
def series(alpha, e, initial,

元記事を表示

リクエスト間でクラスインスタンスが共有されてしまう

# 困ったこと

fastAPI でリクエストでは異なるデータを受け取っているのに、内部で作成されるインスタンスはずっと同じインスタンスが参照されていた

# 原因

Python においてクラスのデフォルト引数が None 以外の場合、初期化されるタイミングは、クラスインスタンスが作成される 1 度のみであるため

そのため、リクエスト間でインスタンスが共有されていたのです

これは fastAPI の仕様ではなく、Python 言語の仕様です

## 例

“`python
class ApplicationAggregate:
def __init__(self, id: str, secret_key: str = “”) -> None:
self.__id = ApplicationId(id) # ULIDを生成
self.__secret_key = secret_key

def get_id_of_private_value(self) -> str:
return self.__id.get_id_

元記事を表示

AndroidデバイスをLinuxサーバーに変える (2) flaskでWebサーバーを動作させる

# はじめに

前回はAndroid上でLinux環境を提供するTermuxのインストールとsshでのリモートアクセスまでを確認した。

https://qiita.com/rairaii/items/c45d19179cda01054a0e

今回はAndroid上でLinux環境を提供するTermuxを用いて、PythonとFlaskをインストールし、簡単なWebアプリケーションを作成・実行するプロセスを解説する。Termuxを介して、Androidデバイスを使って、開発環境を構築し、ローカルでWebサーバーを動作させる方法を紹介する。この記事では、Pythonのインストールから、Flaskを使ったWebアプリケーションの開発、実行までをカバーする。

## Pythonのインストール

まず、TermuxでPythonをインストールする。以下のコマンドを実行し、Pythonをセットアップする。

“`terminal
$ pkg install -y python
$ python -V
Python 3.11.8
“`

インストール後、Pythonのバージョンを確認して、

元記事を表示

OTHERカテゴリの最新記事