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

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

ChatGPTでコードエラーの解決策を自動で出力する

# 1. 背景
エラーの原因がよくわからない時、エラー文をコピペしてChatGPTに投げるということを頻繁にやっているのですが、コピペがめんどくさすぎる。

# 2. 目的
Google Colabpratoryで実行したコードのエラー文を自動的にChatGPTに投げて、その結果をColab上で出力できるようにしたい!

# 3. 方法
### 3.1 下記コードをNotebookの一番上に配置します。
OpenAIのAPI Keyの取得方法はコチラ(簡単!)↓

https://qiita.com/iamtaro/items/09306b81d6e479dce2d9

“`
!pip install openai
import openai
import os

# APIキーを設定します
openai.api_key = ‘YOUR_API_KEY’
“`
・「YOUR_API_KEY」:実際の自分のAPI Key

### 3.2 エラー文をChatGPTに送信するための関数(send_error_to_chatgpt)を定義
“`
def send_error_to_ch

元記事を表示

ChatGPTのAPI Keyを取得する

# 1. はじめに
n番煎じのOpenAI API Keyの取得方法をなるべく簡潔にメモ書きしておきます。

# 2. 方法
### 2.1 OpenAI PlatformのAPI Keysにアクセス。
https://platform.openai.com/api-keys

### 2.2 右上の「+ Create new secret key」をクリック
![スクリーンショット 2024-06-21 16.02.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3820324/b71107c2-1936-d8d7-fef1-e0c7871a0b0d.png)

### 2.3 「Create secret key」をクリック
特にこだわりがなければ下記画面で設定をいじる必要はないです。
![スクリーンショット 2024-06-21 16.04.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3820324/e

元記事を表示

Kaggle Home Credit – Credit Risk Model Stability 金メダル(13位)解法

# 0. はじめに
2024年5月に終了したKaggleのコンペティション、Home Credit – Credit Risk Model Stabilityに弊社DXイノベーションセンターのデータサイエンティスト3人で参加しました。 結果、金メダルを獲得し、3人のうち2人はKaggle Competition Masterに昇格しました!
そこで今回は本コンペの振り返りと解法の共有をしていきたいと思います。

# 1. Kaggleとは
企業や研究機関がデータサイエンスに関するコンペティションを提供し、参加者がその課題を解決するための最適なモデルを開発して精度を競うプラットフォームです。

# 2. コンペ概要
**[Home Credit – Credit Risk Model Stability](https://www.kaggle.com/competitions/home-credit-credit-risk-model-stability)**
![Home Credit.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

python非同期並列処理の並列数を指定

# はじめに
スクレイピングやAPIの実行などの非同期処理を並列に実行したいが、並列数を指定したい

# やること
– asyncioの[gather](https://docs.python.org/ja/3/library/asyncio-task.html#asyncio.gather)を用いて非同期処理を並列に実行
– asyncioの[Semaphore](https://docs.python.org/ja/3/library/asyncio-sync.html#semaphore)を用いて非同期処理を並列数を指定

# コード
“`bash
$ pip install asyncio
“`

“`python
from asyncio import Semaphore, gather, sleep
from collections.abc import Awaitable

async def parallel(tasks: list[Awaitable], concurrency: int) -> list:
“””複数の非同期タスクを並列実行数の上

元記事を表示

PythonでExcelセルの表示形式(数値フォーマット)を設定する

Excelは強力なデータ処理および分析ツールであり、大量のデータを保存できるだけでなく、複雑なデータ処理や可視化機能もサポートしています。Excelシートのデータを適切に表示する方法は、Excelファイル作成の重要な要素の一つです。これには、Excelセルの数値フォーマットの設定が含まれます。数値フォーマットは、データの美学的な表示(通貨、日付、パーセンテージなどの形式)だけでなく、データの読みやすさと正確性にも直接影響します。Python言語を使用することで、柔軟に **Excelセルの数値フォーマット(表示形式)** を設定し、データの一貫性と専門的な標準を保証できます。本記事では、Pythonを使用してExcelシートのセルの数値フォーマットを設定する方法を紹介します。

– **[フォーマットコードを使用してExcelセルの数値フォーマットを設定する](#フォーマットコードを使用してexcelセルの数値フォーマットを設定する)**

ここで使用する方法は、[Spire.XLS for Python](https://www.e-iceblue.com/Download/Spir

元記事を表示

【Python】 ExcelをTXTに、またはTXTをExcelに変換する

## はじめに
Excelは強力なデータ処理とグラフ作成機能を備えた表計算ファイルであり、TXTはシンプルで汎用性が高く、編集が容易なプレーンテキストファイルです。ExcelをTXTに変換することで、複雑なデータテーブルをテキストとして保存することができ、他のプログラムの読み取りや処理操作が容易になります。一方、TXTをExcelに変換すると、テキストファイルのデータをExcelにインポートして、さらに分析や処理を行うことができます。

この記事では、**Python**と関連ライブラリを使用して**ExcelとTXT形式の変換**を実装する方法を紹介します。
* [PythonでExcelをテキスト(TXT)に変換する](#pythonでexcelをテキストtxtに変換する)
* [Pythonでテキスト(TXT)をExcelに変換する](#pythonでテキストtxtをexcelに変換する)

## ExcelとTXT間の変換のためのPythonライブラリ
以下のガイドでは、サードパーティのライブラリ[**Spire.XLS for Python**](https://www.e-

元記事を表示

複数画像の平均を求める

画像内の物体を検出する際に動くもの(人,車など)を削除することができる.

“`python
# 画像を読み込み配列に入れる
def read_images(filenames):
images = []
for filename in filenames:
img = cv2.imread(filename)
images.append(img)
return images

# 画像の平均を求める
def average_images(images):
num_images = len(images)
if num_images == 0:
return None
total_image = np.zeros(images[0].shape, dtype=np.float32)
for img in images:
total_image += img.astype(np.float32)
average_image = total_image / num_images
return average_image

元記事を表示

円周上の3点の内積「2020 一橋大学 前期【3】」をChatGPTとsympyとWolframAlphaでやってみたい。(その2)質問を変更「XA=1+cos(a),YA=sin(a),XB=1+cos(b),YB=sin(b) の時のXB*XC+YB*YCの時の最大値と最小値」

申し訳ありません。私は、理解できませんでした。
>**今から、Pythonを用いて作図を行います。…**
いつになく、ステキ。

# (再)オリジナル
・PASSLABO 様 (0:00〜12:05)

・大学入試数学問題集成 様> 前期【3】 テキスト

https://mathexamtest.web.fc2.com/2020/202010272/2020102720100mj.html#top-0103

# ChatGPT-3.5先生へ(1回目) できませんでした。
“`
XA=1+cos(a),YA=sin(a),XB=1+cos(b),YB=sin(b) の時のXA*XB+YA*YBの時の最大値と最小値
“`

したがって、式 XA⋅XB+YA⋅YB の最大値は 4、最小値は -2 となります。

# ChatGPT-3.5先生へ(2回目) sympyで、できませんでした。
・**1点を原点にしました。**
 他のサイトだと、1点を(-1,0)にして円の中

元記事を表示

【機械学習】ランダムフォレスト入門:決定木の集約と実装

## 目次

1. [はじめに](#1-はじめに)
2. [ランダムフォレストとは](#2-ランダムフォレストとは)
– [基本概念](#基本概念)
– [構造](#構造)
3. [ランダムフォレストの構築方法](#3-ランダムフォレストの構築方法)
– [バギング(Bagging)](#バギングbagging)
– [特徴量の無作為選択](#特徴量の無作為選択)
4. [Pythonでのランダムフォレストの実装](#4-pythonでのランダムフォレストの実装)
– [必要なライブラリのインストール](#必要なライブラリのインストール)
– [サンプルデータの準備とランダムフォレストの構築](#サンプルデータの準備とランダムフォレストの構築)
– [モデルの可視化](#モデルの可視化)
5. [ランダムフォレストの利点と欠点](#5-ランダムフォレストの利点と欠点)
– [利点](#利点)
– [欠点](#欠点)
6. [まとめ](#6-まとめ)

## 1. はじめに

こんにちは!ご覧いただきありがとうござい

元記事を表示

Python for 鬼の100本ノック in range(1, 30)

日記

30【要素と同時にインデックス情報の取得】まで1週目

エディターにいるペットのおかげではかどります。

![画像6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812230/b7e8e508-7aa4-d9e7-299a-df8186df58d3.png)

元記事を表示

円周上の3点の内積「2020 一橋大学 前期【3】」をChatGPTとsympyとWolframAlphaでやってみたい。(その1)

・(その2)を制作中です。 2024-06-21

# オリジナル
・PASSLABO 様 (0:00〜12:05)

・大学入試数学問題集成 様> 前期【3】 テキスト

https://mathexamtest.web.fc2.com/2020/202010272/2020102720100mj.html#top-0103

# ChatGPT-3.5先生へ(1回目) できませんでした。
“`

2020 一橋大学 前期

易□ 並□ 難□

【3】 半径

元記事を表示

Excelに吐き出されていたチャット履歴をCosmosDB にインポートしたときのメモ

# はじめに
Excelに吐き出されていたチャット履歴のデータを、生成AIに食べさせてみたりするために一度CosmosDBにまるっとインポートしたときの個人的なメモ

中身のデータがこんな感じのExcelファイルだったので、python使ってJSONに変換して突っ込みました
|ChatID|type|Createdon|MessageText|
|–|–|–|–|
|a0001|user|2024-04-04 13:56:13|○○システムのライセンスを付与していただきたいです|
|a0001|supporter|2024-04-04 14:20:53|こちらの事前の手順を完了させたのち、このチャットでご連絡ください。URL:XXXXXXXX|
|a0001|user|2024-04-05 08:48:59|資料ありがとうございます。|
|a0001|user|2024-04-08 09:45:10|事前の作業完了しました。|
|a0001|supporter|2024-04-08 09:45:10|確認が取れましたので、これからライセンスを付与いたします。|
|a0001|s

元記事を表示

ABC358参加記録 by Python

# リアルタイムに解けた問題

## [A – Welcome to AtCoder Land](https://atcoder.jp/contests/abc358/tasks/abc358_a)

### 問題文
> 高橋くんはAtCoder Landを目指しています。目の前に看板が置かれているので、ここがAtCoder Landであるかどうか判定したいです

文字列$S$,$T$が空白区切りで与えられます。$S=$ `AtCoder`かつ$T=$ `Land`であるかどうか判定してください。

### 制約
– $S$,$T$は英大小文字からなる長さ1以上10以下の文字列

### アルゴリズム
if文で条件分岐。$S$,$T$がそれぞれ`AtCoder`、$T=$ `Land`であればYes、そうでなければNoを出力。

### ソースコード
“` python
S, T = i

元記事を表示

【Python】【matplotlib】NetworkXで描画したグラフを画像として保存できない問題の対処

# はじめに
ネットワークの作成・描画ができるPythonモジュール「NetworkX」にて、描画したグラフを画像として保存する方法で詰まったのでその解決策について紹介します。

:::note warn
今回題材とするのはnetworkXですが、紹介している内容自体はmatplotlibと連携して図表を描画するモジュールすべてに当てはまるものです
:::

# 背景と今回起こった問題
NetworkXには、matplotlibを使って作成したグラフを描画する機能があります。そのため。描画したものもmatplotlibと同様に`plt.savefig(‘hogehoge.png’)`コマンドで保存できる…はずです。実際、これを実装している方もいます(以下リンク参照)。

https://qiita.com/moriaki3193/items/21186bae39d71314cc8f

しかし、自分の環境(Jupyter Notebook)で同じことをしようとした結果、真っ白な画像が保存されてしまい、描画したグラフは映らないのでした…状態としては以下の通りです。

![image.p

元記事を表示

Django で GraphQL 実装してみた

#### 環境

macOS Sonoma 14.5
docker 26.1.3

python 3.11
Django 4.2.9
graphene-django 3.2.2

#### ディレクトリ

project
├── apps
│   └── backend
│       ├── app     # django app
│       ├── config  # django project
│       └── manage.py
├── compose.yaml
└── docker
    ├── backend
    │   ├── nginx
    │   │   ├── nginx.def.conf
    │   └── python
    │       ├── Dockerfile
    │       └── requirements.txt
    └── mysql
        ├── Dockerfile
        └── my.cnf

## 環境構築

compose.yaml

`

元記事を表示

継承、誤って使っていませんか?

## 誰に向けての記事か
この記事は主にオブジェクト指向プログラミングに慣れてきた頃くらいの方を対象にしています。

PythonやJava、Rubyといったプログラミング言語を勉強しはじめると、しばらくしてオブジェクト指向という概念を学習することになります。そしてオブジェクト指向プログラミングの重要な特徴として以下の3つがよく挙げられます。

・継承
・カプセル化
・ポリモーフィズム

上記のうち、特に使い方に注意を払わなければならないのは**継承**です。継承はスーパクラスとサブクラスの間に密結合を生み出します。継承を誤って使ってしまうと1つの変更が他のクラスにも影響を及ぼしかねません。そうすると変更するのにも認知的なコストがかかるようになります。継承自体禁止するように言う人もいるくらいです。

筆者自身は継承を全面的に禁止しようとは思いません。ただし、継承にも良い使い方、良くない使い方というのはあります。それでは良くない継承とは何でしょうか。

## 結論
最初に結論を述べます。

**共通処理の置き場として継承を使ってはいけない**

このような継承をしてしまうと変更が容易にで

元記事を表示

stliteからOpenAI APIを呼び出そう

## stliteとは

StreamlitはPython環境上で実行されているサーバにブラウザでアクセスする仕組みですが、このサーバを同じブラウザ上で動くようにしたものが[stlite](https://github.com/whitphx/stlite)です。
Streamlit Creator[^1]であるWhitphxさんが開発しています。

https://github.com/whitphx/stlite

[^1]: Streamlitコミュニティへの貢献が世界トップクラスな方々のこと。https://streamlit.io/creators

PythonをWebAssembly(WASM)に移植してブラウザ上で動くようにした[Pyodide](https://pyodide.org/en/stable/)というPythonディストリビューションがあり、stliteはStreamlitをこのPyodideで動くようにすることでサーバレスを実現しているそうです[^2]。

[^2]: 「サーバレス」ではなく「静的サイトで動かせる」と表現した方が分かりやすいか

元記事を表示

AWS CDK と IaCの歴史

# はじめに

– インフラコーディングの「AWS CDK」ってなんだっけ?
– 知らなかったので、他IaCと合わせて調べてみました

https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html

# IaC 記述アプローチの違い

Infrastructure as Code (IaC) の記述には主に二つのアプローチがあります。
それぞれに特徴があり、使用するツールや目的によって選ばれます。

1. **宣言型(Declarative)アプローチ:**
– **特徴**: 望む最終的な状態を記述し、その状態をどのように達成するかは記述しない
– つまり、「何を達成したいか」を指定し、「どのように達成するか」はツールに委ねられる
– **例**: Terraform、AWS CloudFormationなど。
– リソースの構成をファイルに記述し、ツールが自動的にこの状態を実現するための手順を計算し実行される

2. **手続き型(Imperative)アプローチ:**
– *

元記事を表示

tabula-pyでpdfをcsvに変換する際、javaの環境設定が必要だった話

pdfデータをcsvに変換して構造化データとして使用したい!
tabula-pyというとても便利そうなツールがあるのでサクッと変換しようとしたら、
JVMNotFoundException でつまずいた… 全然サクッといけない…

**システム環境変数を設定すればいけます!!!**

以下簡単に手順

### 1.java のインストール
https://www.java.com/ja/download/

### 2.tabula-py のインストール
“`
pip install tabula-py
“`
### 3.環境変数設定
0. 環境変数設定を開く
0. システム環境変数の新規で「JAVA_HOME」を「yourpath」に追加
yourpath は初期設定だとこんな感じです–> C:\Program Files\Java\jre-1.8 
Javaのインストール先を参照してください
0. 「path」を編集、一番下に新規で「%JAVA_HOME%bin;」と追加

詳細はこちら

https://stackoverflow.com/quest

元記事を表示

pytest をさわりながらよく使いそうなものまとめてみた

# はじめに
pytestに触れてみたので本記事は備忘録を兼ねてその学習内容をまとめたものになります。

# 対象の方
とりあえずコピペで動かしながらざっくりpytestの書き方を把握されたい方

# インストール

pytestをインストールします。

“`
pip install pytest
“`

# 環境
– python:3.12.2
– pytest:8.2.2

# とりあえず動かしてみる

足し算を行うシンプルな関数を準備します。

“`python:sample.py
def add(a, b):
return a + b
“`

足し算を行う上記の関数をテストするためのテストコードを作成します。

“`python:test_sample.py
from sample import add

def test_add():
assert add(1, 2) == 3
assert add(-1, 1) == 0
assert add(0, 0) == 0
“`

:::note warn

テストコードのファイル

元記事を表示

OTHERカテゴリの最新記事