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

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

【Python】文字列操作

# 文字列操作
Pythonでは文字列は非常に重要な役割を果たします。文字列は `str` クラスのオブジェクトとして扱われ、次のようなさまざまな操作が可能です。
## 文字列の作成
– 単一引用符 (`’`)、二重引用符 (`”`) で囲む
– 三重引用符 (`”””` や `”’`) で複数行の文字列を作成可能
“`python
str1 = ‘Hello, World!’
str2 = “Python’s strings”
str3 = “””This is
a multi-line
string.”””
“`
## 文字列の連結
– `+` 演算子を使って文字列を連結できます
“`python
str1 = ‘Hello, ‘
str2 = ‘World!’
str3 = str1 + str2 # ‘Hello, World!’
“`
## インデックスとスライシング
– 文字列の各文字にはインデックス番号が割り当てられています
– `[]` を使ってインデックスまたはスライスを指定できます
“`python
str1 = ‘Hello, World!’
pri

元記事を表示

【Python】数値演算

# 数値演算
Pythonでは数値演算が非常に重要な役割を果たします。以下の種類の数値演算を行うことができます。
## 基本的な算術演算
– 加算 (+)
– 減算 (-)
– 乗算 (*)
– 除算 (/)
– 剰余 (%)
– 累乗 (**)
– 階乗 (math.factorial())
“`python
a = 10
b = 3

print(a + b) # 加算 出力: 13
print(a – b) # 減算 出力: 7
print(a * b) # 乗算 出力: 30
print(a / b) # 除算 出力: 3.3333333333333335
print(a % b) # 剰余 出力: 1
print(a ** b) # 累乗 出力: 1000
“`
## 代入演算
– 変数への代入 (=)
– 複合代入演算 (+=, -=, *=, /=, %=, **=)
“`python
x = 5
x += 3 # x = x + 3 = 8
x -= 1 # x = x – 1 = 7
x *= 2 # x = x * 2 = 14
x /= 7

元記事を表示

ChatGPTとのペアプログラミングでやっていること

# はじめに
気になっているライブラリを使ってみたい。新しい分野のサンプルコードを動かして開発に活用したい。このようなシチュエーションでは、プロンプトを工夫しなくても差し支えないと思います。

プロンプトを工夫してChatGPTの出力を制御する手法がありますが、私が普段ChatGPTとペアプログラミングする際には意識していません。思うがままに入力して、期待する出力が得られないのであれば、具体的に変更箇所を指示することで、不自由なく使えています。

# テーマ:MediaPipeを使った開発
ChatGPTとのペアプログラミングの例として、MediaPipeというGoogle社が開発した学習済みモデルを使用した画像処理アプリケーションを動かしてみます。

https://ai.google.dev/edge/mediapipe/solutions/guide?hl=ja

|種別|バージョン|
|—-|—-|
|モデル|ChatGPT-4|
|Python|3.11|
|conda|conda 22.9.0|
|開発環境|VSCode|

# 1ターン目

~~~:入力したプロン

元記事を表示

opencv-pythonのインストールが進まないときの対処法

久しぶりにOpenCVをインストールしようとすると、中々進まないな?
何かおかしいのかな?と不安に思うことがあったので記録しておきます。

https://pypi.org/project/opencv-python/

## 実行環境

|種別 |バージョン|
|——-|——–|
|conda |22.9.0 |
|Python |3.11 |

# 解消方法
インストールコマンドの後ろに’–verbose’を追加して、進捗状態を見守る。

~~~zsh:インストールコマンド
pip install opencv-python –verbose
~~~
https://pypi.org/project/mediapipe/

~~~zsh:opencv-pythonインストールの進行状態
— Build files have been written to: /private/var/folders/g2/7mngl_8j1rb0sfzg6vgx0dlw0000gn/T/pip-install-c836b3t6/opencv-pytho

元記事を表示

Poetryで仮想環境を作ろう!Python開発をもっと快適に

# Poetryで快適Python開発ライフ!依存関係と仮想環境の管理が超ラク!

Pythonでアプリ開発していると、依存パッケージと仮想環境の管理って面倒ですよね。
Poetryを使えば、そんな悩みともサヨナラできちゃいます!

## Poetryとは

Poetryは、Pythonのパッケージ管理と仮想環境構築を統合的に行えるツールなんです。つまり、依存関係管理、仮想環境構築、ビルド、パッケージングを統合的におこなうことができるツールで、プロジェクトで使うパッケージをpyproject.tomlってファイルで管理して、コマンド一発で仮想環境の構築からパッケージのインストールまでできちゃう優れものなのです!

## pyproject.tomlが全ての基本!

pyproject.tomlは、Poetryの設定ファイルで、プロジェクトの情報を一箇所に集約できるんです。こんな感じで書くよ。

“`toml
[tool.poetry]
name = “my-awesome-project”
version = “0.1.0”
description = “超かっこいいプロジェクト”

元記事を表示

Pipenvで仮想環境を作ろう!Python開発をもっと快適に

# Pipenvの使い方 – Pythonの依存関係と仮想環境を簡単に管理しよう!

最近ようやくvenvを使って仮想環境を管理するようになったので、同じような仮想環境の構築方法についてついでに調べてみました。pipenvはPythonプロジェクトの依存関係と仮想環境を管理するためのツールで、仮想環境の管理に加えて、パッケージの依存関係管理も行えるツールです。

## インストール

まずは、pipenvをインストールしましょう。pipを使って、次のようにインストールします。

“`bash
pip install pipenv
“`

## 新しいプロジェクトの開始

新しいプロジェクトを始める際は、プロジェクトのディレクトリを作成し、そこに移動します。

“`bash
mkdir myproject
cd myproject
“`

次に、以下のコマンドを実行して、プロジェクトの初期化を行います。

“`bash
pipenv install
“`

このコマンドにより、仮想環境が作成され、`Pipfile`と`Pipfile.lock`というファイルが生成されます。

元記事を表示

virtualenvで仮想環境を作ろう!Python開発の効率化に

# Python開発の効率化に欠かせない!virtualenvで仮想環境を構築しよう

最近ようやくvenvを使って仮想環境を管理するようになったので、同じような仮想環境の構築方法についてついでに調べてみました。古いpython環境を使用されている方もプロジェクトごとに最適な環境を整える場合は、virtualenvの活用をおすすめします。

## virtualenvとは

virtualenvは、プロジェクトごとに独立したPython環境を構築するためのツールです。それぞれの仮想環境では、必要なパッケージとそのバージョンを個別に管理できるため、プロジェクト間の依存関係の衝突を回避できます。

## virtualenvのメリット

– プロジェクトごとに環境を分離し、依存関係の競合を防ぐことができます。
– 仮想環境を他の開発マシンに複製することで、同一の開発環境を簡単に再現できます。
– 仮想環境内でパッケージの追加・削除を行っても、グローバルなPython環境に影響を与えません。

## 仮想環境の構築手順

1. virtualenvのインストール
“`
pip

元記事を表示

venvで仮想環境を作ろう!Python開発をもっと快適に

# venvで仮想環境を作ろう!Python開発をもっと快適に

Pythonを使った開発をしている皆さん、仮想環境は使っていますよね?
私のロールは開発者ではないのですが、個人的なツールを作るときに仮想環境の便利さを知ってしまい、最近ようやくvenvを使って仮想環境を管理するようになりました。

## venvって何?

venvとは、Python 3.3以降に標準ライブラリに追加された仮想環境管理ツールのことです。仮想環境を使うと、プロジェクトごとに独立したPython環境を作ることができます。つまり、プロジェクトAとプロジェクトBで、別々のパッケージやそのバージョンを使い分けられるということです。

## venvを使うメリット

– 標準ライブラリなので、別途インストールが不要
– 軽量で使いやすい
– プロジェクトごとに環境を分離できるので、依存関係の衝突を防げる

## 仮想環境の作り方

1. プロジェクト用のディレクトリを作成
“`
mkdir myproject
cd myproject
“`

2. 仮想環境を作成
“`
p

元記事を表示

Python開発の環境管理について調べてみた

# Python開発での仮想環境管理
個人で使うツールはPythonで開発していますが、環境管理ができるとすごく便利そうだったので、Pythonの環境管理ツールを徹底比較し、それぞれの特徴・メリット・デメリットについていろいろと調べてみました。

## 1. venv: Python標準の仮想環境管理ツール

Python 3.3以降に標準搭載されているvenvは、まさに「シンプルイズベスト」を体現したツールです。

### 特徴

– Python標準ライブラリに含まれているため、追加のインストールが不要
– プロジェクトごとに独立した仮想環境を作成可能
– 軽量で、リソース消費が少ない

### 注意点

– 仮想環境内では、仮想環境作成時のPythonバージョンが使用される
– 依存関係の管理機能は限定的

### 使い方
venvの使い方についてはこちらをご確認ください。

https://qiita.com/shioccii/items/1c14f48e0c50f9ca42d6

## 2. virtualenv: Python 2系でも使える仮想環境管理ツール
virtua

元記事を表示

【Copilot利用】LightGBMで株価予測をやってみた🎵

最近のGPTの進化は凄まじいということで、株価予測のコードを以下のとおり、Copilotに出力してもらいました。
詳細は、下の余談の順にやりとりしています。
最後の質問
「実際に株価データを使って予測したいです。」
回答
「株価データを使った予測を行うには、Pythonを活用するのが一般的です。Pythonには、株価分析や予測に役立つ多くのライブラリがあります。以下は、株価データを取得し、機械学習モデルを用いて予測を行う基本的なPythonコードの例です。

まず、必要なライブラリをインストールします。pandasはデータ操作、pandas_datareaderは株価データの取得、matplotlibはデータの可視化、sklearnは機械学習モデルの構築と評価、lightgbmはLightGBMモデルの実装に使用します。
“`.py
# 必要なライブラリのインポート
import numpy as np
import pandas as pd
import pandas_datareader.data as web
import matplotlib.pyplot as plt
fr

元記事を表示

LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(12)

![sky.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3784222/d3dda304-1d0a-f795-23bf-1d50b458f7e2.jpeg)

# はじめに
 大量ファイルを単純にVectorDBに登録して、そのデータベースに対して生成AIに質問をしても、精度の高い回答を得られないことが分かってきました。
 前回と前々回では、各XMLファイルの中にある「タイトル情報」を基に生成AIによる自動タグ付けを実施し、それをVectorDB (Chroma)の属性として登録することをしてみました。これで、VectorDBに対する準備ができました。

https://qiita.com/ogi_kimura/items/0d4aa37cef5bd071ea7b

https://qiita.com/ogi_kimura/items/ac599fc8968e50c21d99

 今回はこのデータベースを基に、条件となる「タグ情報」を入力し、生成AIに質問をすることで、正しい回答が返ってくるかを試して

元記事を表示

SAR Handbook[Chp3-3]を写経し、難しい単語を使わず意訳してみた

# はじめに
本記事シリーズではSERVIRが以下のサイトで公開している「SAR Handbook」を写経し、理解を深めることを目的としています。
https://servirglobal.net/resources/sar-handbook
もともとのサイトや資料は英語にて記載されているので、翻訳しつつコード理解をしていきます。

以下の記事の続きで、本記事ではChapter3のPart3について記載します。
https://qiita.com/oz_oz/items/ab4d4cdabfda69943e4a

# CHAPTER3
## Using SAR Data for Mapping Deforestation and Forest Degradation
Chp3の説明資料は以下にあります。
https://gis1.servirglobal.net/TrainingMaterials/SAR/Ch3-Content.pdf
Chp3では主にSARによる森林監視について触れており、Sentinel-1などのSARミッションの登場により、適切な前処理と変化検出手法を用いること

元記事を表示

LLMはExcel方眼紙を読めるのか?

日本にはExcel方眼紙という文化がありますので、各企業に膨大に存在するであろうExcel方眼紙資産をLLMは読めるのか?という水と油のような事を試してみます。

Excel方眼紙としてはかなり簡易ですが、総務省の「統計表における機械判読可能なデータ作成に関する表記方法について」の悪い例を参考にして作ったもので動作を確認します。

https://www.soumu.go.jp/main_content/000723697.pdf

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/63bd7b31-5ae9-62cd-a0eb-ed7072fff28c.png)

セル結合、1セルの中に複数項目、セルの中に注釈を入れる、同じ行に別の表を入れる、などやってます。

この資料に対して、以下の質問をしてみます。

– 複数データ表のCの費用総額は?
– 注釈込み表において冷凍品は何月のどの商品か?
– 結合表の東京都の市区町村を全て出力してください

# テキストのみを抽出する

元記事を表示

初学者が遭遇しがちな機械学習モデルの推論時エラーと解決策

機械学習モデルをトレーニングして推論タスクに適用する際、特に異なるコンピューティング環境(トレーニングはGPU、推論はCPU)を利用する場合に推論がうまくいかないことがよくありました(2クラス予測で0と1を交互に推論するなど)。

そのときにやってしまっていたこととその解決策を簡単にまとめます。

# 1. モデルのロードミス
推論エンドポイントをCPU(`ml.m5.large`)で構築したところ、GPU(`g4dn.2xlarge`)でトレーニングしたモデルが期待通りの推論結果を出力しませんでした。

ログを開いたら以下のWarningがでていました。

“`
2024-04-25T05:47:04,365 [WARN ] W-9000-model_1.0-stderr MODEL_LOG – Some weights of the model checkpoint at /opt/ml/model/code/pytorch_model.bin were not used when initializing BertModel…
“`

Fine-Tuningされた`Pre

元記事を表示

S3で発行した署名付きURLの有効期限が設定した期限より早く切れてしまう

## 概要
– S3に発行した署名付きURLの有効期限をコード内で最長の7日間で設定していたが、7日経っていないのにアクセスできないという課題が発生した
– 原因を調査したところ、署名付きURLの生成時に一時的なトークンが発行されていることがわかった
– どうやら、署名付きURLにて設定した期限(今回だと7日)が来る前に、先に一時的なトークンの有効期限が切れてしまい、結果共有したURLでアクセスできないという問題が発生していた

## 結論
– 署名付きURLの有効期限を12時間以上に設定する場合、IAMユーザーの認証情報を付与して署名付きURLを生成する必要がある

## 原因がわかるまでの過程
– 状況
– Pythonで、botoを使って署名付きURLを生成していた
“`python
def generate_presigned_url(self, access_key, secret_key, filename, bucket, expires_in) -> str:
s3 = boto3.client(

元記事を表示

LangChainを用いて大量ファイルをロードするVectorDBを作ってみた(11)

![sky.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3784222/97443c9d-9377-60f8-50b0-3ad2cfee2bee.jpeg)

# はじめに
 前回は、各XMLファイルの中にある「タイトル情報」を基に「自動タグ付け」して、それをVectorDB (Chroma)の属性として登録することをしてみました。これで、VectorDBに対する準備ができました。

https://qiita.com/ogi_kimura/items/0d4aa37cef5bd071ea7b

 ただ、この記事を書いた後に大量ファイルをロードしようとしたのですが、処理時間を非常に要することがわかりました。
 今までは1ファイルの処理に0.01~0.1秒かかる程度だったのですが、「自動タグ付け」処理を追加すると、1ファイルにつき30~40秒かるようになりました。
XMLファイルが10,000程度あるので、単純に計算したらVectorDBへ登録する処理時間は3日半かかることになります・・・💦
 これは

元記事を表示

Ubuntu22.04にFletをインストールした話

# fletって何!
fletはflutterをpythonから使うライブラリです。
flutterってJavaScriptの親戚言語のdartで使えるマルチプラッフォーム開発環境です。
それがPythonで使えるなら学習するコストがなくなるのでいいじゃんという話。

# まずはpipでインストール
pip install flet
でインストールできる。

ライブラリとしてimport fletはインポートできるが・・・

# fletの本家サイトに行ってサンプルコードをコピー
本家サイトの
https://flet.dev/docs/
にいってIntroductionを開いてサンプルコードをコピペして実行してみる
実行は

flet run counter.py

で実行できるらしい。

# 実行すると・・・
libmpv.so.1: cannot open shared object file: No such file or directory
と怒られた。

なので apt search libmpv でライブラリを含むパッケージを探すとどうも libmpv-dev らしかっ

元記事を表示

ABC357回答メモ

# 0.はじめに
 レート807ともうほぼ茶色状態で臨んだコンテスト。
C問題がややこしい感じでしたが、D以降もできる気がしなかったので
時間をかけてなんとかAC。その時点で残り数分で終了。
まぁ、Cはややこしいだけで回答できていた人は多く
無事?レート778になり茶色コーダーに逆戻りしました・・・。

# 1.A – Sanitize Hands
 Aにしては複雑な問題。
リストを先頭から見ていき、
MからH[i]分マイナスしていき
Mが0になったら、i+1を表示して終了
0より小さくなったらiを表示して終了
最後までMが0にならなかったらNを表示して終了と
素直に場合分けしました。

 https://atcoder.jp/contests/abc357/submissions/54326008

# 2.B – Uppercase and Lowercase
 Aより簡単なくらいの問題。
先頭から大文字と小文字の数を数えていき
多い方に揃えて出力。と、isupper等の
関数を調べるほうが手間がかかる感じでした。

 https://atcoder.jp

元記事を表示

pyodideとpyscript

今日は表題のものを紹介します。

### 背景

onlineでpythonが動く環境って結構ありますよね。私が良く使うのだと以下のやつです。

https://www.online-python.com/

でも大抵のサービスはwebアプリになっているだけで、実際のpythonコードはサーバーで動いているわけです。自分で動かしてるサーバーでそういうアプリを入れるとなるとパフォーマンスやらセキュリティやら気になってしまいますよね。

ではクライアント(ブラウザ上)で動かせないか?と考えたのがpyodideです。

### pyodide

これ実体はwasmなのです。以下はデモです。

https://pyodide.org/en/stable/console.html

例えば以下のようなコードを貼り付けて実行してみてください。

“`python
import time
s = time.monotonic()
while s + 30 > time.monotonic():
pass
“`

ちゃんとCPU使ってるでしょ?気になったら本家にGo

https://p

元記事を表示

jupyter notebookはpythonが動くwebアプリ

表題のとおりです。
jupyter notebook(lab)は便利ですが、pythonそのものではありません。

元記事を表示

OTHERカテゴリの最新記事