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

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

Pythonおすすめの書籍(2024)

## 概要
私がこれまでに読んだPython関連書籍からおすすめのものを抜粋して分類・評価しました。
> **抜粋2冊**

## 本ページの見方
点数は、下記の基準で5段階に★を付けました。
(抽象的で平易な場合)
> **具体的 ★★★★★ 抽象的**

> **平易 ★☆☆☆☆ 難解**

# おすすめの書籍一覧
## 文法解説書
[『Python基礎&実践プログラミング』](https://www.amazon.co.jp/Python%E5%9F%BA%E7%A4%8E%EF%BC%86%E5%AE%9F%E8%B7%B5%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%EF%BC%BB%E3%83%97%E3%83%AD%E3%81%B8%E3%81%AE%E3%82%B9%E3%82%AD%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%B5%E3

元記事を表示

python boto3でDynamoDBを操作する場合の自分向けチートシート

# 概要
毎回boto3でDynamoDBを操作する場合の書き方を忘れるので、自分用のチートシートを作成します。

# 想定するテーブル
本ページで扱うテーブル情報は以下とします。
学校の科目ごとの成績を管理するテーブルです。

|項目|内容|備考|
|–|–|–|
|テーブル名|school_score_table||
|パーティションキー(PK)|student|生徒ごとにユニークな名称|
|ソートキー(SK)|subject|科目はMath, English, Scienceなど|
|グローバル セカンダリ インデックス(GSI)|subject-Index|科目だけでクエリするためのインデックス|

入れておくレコードはこんな想定です。
“`python
[
{
‘student’: ‘Alice’,
‘subject’: ‘Math’,
‘grade’: ‘A’
},
{
‘student’: ‘Alice’,
‘subject’: ‘English’,

元記事を表示

Noteの記事をQiitaで使えるmd形式に変換する方法

## やりたいこと

NoteのurlからQiitaのmd形式に変換し、コピペでQiitaの記事を作成できるようにする。

## 実現できたこと
クリック一つではできなかったが通常の変換よりもかなり楽になる。

## やり方

### 前提

pythonの実行環境が必要。必要なライブラリも各自インストールしてね。その辺は他の記事を参照して。
また、この記事のようのノートのはじめと終わりに以下のタグをつける。
このタグが複数あるうまく動かないので画像で表示している。

![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2294598/52283811-70a1-a29b-5796-ac52bd6522ad.png)

### 実施

核となるコード
HtmlToMarkdown.py

“`HtmlToMarkdown.py
import os
import requests
from urllib.parse import urljoin, urlparse
from bs

元記事を表示

【文字列 3】p4!2@ (paizaランク B 相当)

【文字列 3】p4!2@ (paizaランク B 相当)

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__leet_paiza

![2024_04_09【文字列 3】p4!2@.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768836/833208f9-e21c-721c-096a-504afae0f637.jpeg)

Leet判定の問題です。単純に”paiza”なら”paiza”と出力して、Leet文字なら一度Leet前の文字に変換した後、”paiza”5文字と一致すれば”Leet”出力します。

元記事を表示

【全探索 1】高い寿司を食いたい! (paizaランク B 相当)

【全探索 1】高い寿司を食いたい!

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__get_richer_sushi

![2024_04_08【全探索 1】高い寿司を食いたい!.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768836/cf8fdbe4-e958-f918-ef3e-abbca51a13ab.jpeg)

円形のレーンに対して連続してお寿司をとるにはどうすればいいかという問題。これには剰余を使えば解決します。

元記事を表示

【条件判定 1】郵便料金 (paizaランク C 相当) 他

【条件判定 1】郵便料金

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__posting_fee

![2024_04_08 【条件判定 1】郵便料金.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3768836/47a0e6c8-a4bc-026b-55c6-e427b34ae69a.jpeg)
特に複雑な考えはいらず、素直に条件分けして、コード記入で解ける問題。

【条件判定 2】視力検査

https://paiza.jp/works/mondai/b_rank_new_level_up_problems/b_rank_new_level_up_problems__vision_test

![2024_04_08 【条件判定 2】視力検査 (1).JPG](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

【論文紹介】勾配法から見る K-Means クラスタリング

本記事では、2024年2月に arXiv へ投稿された次の論文の内容を概説する。

* [He, Yudong. “Imbalanced Data Clustering using Equilibrium K-Means.” arXiv preprint arXiv:2402.14490 (2024).](https://arxiv.org/abs/2402.14490)

この論文では、勾配法の観点から既存のクラスタリングアルゴリズム K-Means, Fuzzy C-Means を一般化し、新しいクラスタリングアルゴリズム Equilibrium K-Means (EKM) を提案している。提案した EKM は、下図のような不均衡データに有効である。

![equilibrium_kmeans.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/394475/550111d5-f9a7-4367-6a4b-a1e333c916ec.png)

# クラスタリングの定式化と既存アルゴリズム

## K-Me

元記事を表示

【2024年版】Jupyter notebook、Jupyterlabの最適でイケている設定

Jupyter周りのイケてる設定をメモしておきます。

# 前準備

## フォントのインストール

等幅フォントの**noto sans mono extra condensed**を使います。
半角文字は半角文字同士で等幅、全角文字は全角文字同士で等幅、全角文字は半角文字の2倍の幅のフォントになっていて、プログラミングでは良い感じの表示になります。
そこら辺のフォントよりも見た目もイケてます。

Googleのサイトからフォントデータをダウンロードして、Windowsとかにインストールしておきます。

https://fonts.google.com/noto/specimen/Noto+Sans+Mono

## Jupyterとかのインストール

“`bash
pip install jupyter jupyterlab ipython
“`

## 日本語化パッケージのインストール

Jupyterの日本語化に使います。

“`bash
pip install jupyterlab-language-pack-ja-JP
“`

# Jupyterの設定ファイルの編集

元記事を表示

【ドルコスト平均法】外貨積立をシミュレーションしてみる🎵

昨日、[【ドルコスト平均法】オルカンなのかSP500なのか、NVIDIAはたまた国内株なのか、。。。よりリアルにNISAのゲインを追求する🎵](https://qiita.com/MuAuan/items/452a21e95c8a7e51a97e)を書いたが、外貨積立もドルコスト平均法で積立てる仕組みがあるので、今回は、それを同様にシミュレーションしてみる。
為替データは、以下の参考のとおりであるが、一部仕様が変わり、参考②のように変更が必要であった。
【参考】
①[【シストレ入門】FXと株価時系列のシミュレータ作って遊んでみた♬](https://qiita.com/MuAuan/items/4fede457efcd1fcd908c)
②[pandas-datareaderでyahooファイナンスのデータを取得する方法](https://knowledge-bridge.info/technology/statistics/3654/)
## コード変更
### Lib
“`Lib.py
import pandas as pd
import numpy as np
import m

元記事を表示

【生成AIアプリ100チャレンジ】(16)マギシステム(エヴァンゲリオン風)

https://ai.nuevo.jp/magi_system/results/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# 目的
人気アニメ「エヴァンゲリオン」のマギシステムをChatGPTで実装してみました。
科学者としての意見
母親としての意見
女としての意見
三つの意見を元に結論を導くアプリです。

このマギシステムを活用すれな、ネルフ同様、日本のリーダーは結論をすぐに出せるようになるかもしれません。
作ってみたかったアプリのひとつです

# コード
“`python:qiita.rb
OPENAI_API_KEY = os.en

元記事を表示

BRICSによる化合物のフラグメント化とバーチャルライブラリ構築

# はじめに
こんにちは、@sasshi_iです。
本日はバーチャルライブラリの構築方法について紹介します。

化合物のバーチャルライブラリとは、**実際に合成する前にコンピュータ上で設計された多くの化学構造から成るデータベース**です。

バーチャルライブラリ構築の目的は、理論上可能な化合物の構造を列挙し、それらの中から実験的に合成してテストする価値のある候補を選択することです。

バーチャルライブラリは下記の流れで作成できます。

* 生理活性(または物性)および化合物の合成容易性を考慮して部分構造(フラグメント)を列挙
* フラグメントを組み合わせる

化合物を生理活性および合成可能性の観点からフラグメントに分解する手法の1つに**BRICS**があります。

それでは、BRICSについて説明していきましょう。

# BRICSとは
**BRICS(breaking of retrosynthetically interesting chemical substructures)** は、既知の化合物を特定の化学結合で区切り、特定の化学構造断片を生成するアルゴリズムの1つです。

元記事を表示

05.単体テスト入門(単体テストの手法)

# はじめに
この記事の内容は[『単体テストの考え方/使い方』(Vladimir Khorikov 著)](https://www.amazon.co.jp/%E5%8D%98%E4%BD%93%E3%83%86%E3%82%B9%E3%83%88%E3%81%AE%E8%80%83%E3%81%88%E6%96%B9-%E4%BD%BF%E3%81%84%E6%96%B9-Vladimir-Khorikov-ebook/dp/B0BLTG8Z9K/ref=sr_1_1?crid=2UL0DTAU847M8&dib=eyJ2IjoiMSJ9.szFq2C4aOdDz4PEH_Zbenl-6teIVtP7d48eV0HCyp4b9Y64WkRrRDB10749eDaHipUJW6VZG7ez8XH2qZuzyVnHAo4txppqkgXbgCs-UiVaveADqWvzYPPkMHj7I1D05xxI73YyxabAjcDqljWXKTpaud9KThs8H9JAZHEkkndboMQ8ksDf–gkwjMhU3VuprwTVhAg9TPLgKMKpVjv0QxWbgQZAAR_pze

元記事を表示

GASとGoogle ColabでPDFのOCR

## はじめに
たくさんのPDFをデータ化したいことがあり、ある程度は手動で補正する必要が出てくるのは許容しつつできるだけ楽にテキストを取り出したいということでOCRしました。

## 前提

* ちゃんとドキュメントとして認識されている(PDFリーダーで文字選択できる)PDFあり。
* 画像として認識されているPDFもあり。
* 上記2つが混ざっているPDFもあり。

## 流れ

1. PDFはGoogleドライブに保存
1. PythonでPDFを画像化(ドキュメントとして認識されているものも画像に寄せる)
1. GASでOCR

これだけです。
画像化は別にローカル環境でも良いのですが、あんまり環境あっち行ったりこっち行ったりしたくないということでGoogleアカウント内で完結できるようGoogle Colabを使用しました。

ちなみにGASを使ったのは初めてでした。

また1ファイルずつ手動で良ければGoogleドキュメントに読ませるとテキスト抽出してくれます。

### 1. PythonでPDFを画像化

まずpdf2imageを使うために必要なLinuxパッケージのp

元記事を表示

【生成AIアプリ100チャレンジ】(15)返信メール生成・校正アプリ

https://ai.nuevo.jp/response_mail/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# 目的
メールの文章を考えるのがめんどくさいので、雛形を生成AIに書いてもらって楽しようというアプリです。
会社と名前は、ChatGPTに送らないよう、最低限のセキュリティだけ行なっています。

返信メールの内容と簡単な返信メールの内容をチャットGPTにリクエストとして送信。
最適な文書に生成・校正していただけるというアプリです。
実際に私も同じ内容の処理をChatGPTに問い合わせていたので、これで時間短縮になります。
同じ指示をなん度

元記事を表示

Pythonを用いてURLからファイルをダウンロードする

# はじめに
Pythonと「Requests」ライブラリを用いて、定義したURLのファイルをダウンロードするコードを作成してみました。

# サンプルコード
## 概要
ファイルのURLが作成されている「list.txt」ファイルを読み込んで、改行ごとのURLのファイルをダウンロードします。

## コード例
「list.txt」ファイルは、以下のように改行でURLを区分します。
“`text:list.txtの例
https://www.~~~.com/~~~/sample_img1.png
https://www.~~~.com/~~~/sample_img2.png
https://www.~~~.com/~~~/sample_pdf1.pdf
“`
Pythonのサンプルコードは、以下のように作成しました。
“`python:サンプルコード
import requests

def main():
# テキストファイルからURLを取得する(改行で区分)
with open(“list.txt”, “r”) as txt_f:
file

元記事を表示

【生成AIアプリ100チャレンジ】(14)送信メール校正アプリ

https://ai.nuevo.jp/send_mail/

# 開発環境

| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。

# 目的
メールの文章を考えるのがめんどくさいので、雛形を生成AIに書いてもらって楽しようというアプリです。
会社と名前は、ChatGPTに送らないよう、最低限のセキュリティだけ行なっています。

目的、送信先の相手との関係、挨拶の要不要、送り先の相手人数を指定します。
簡単な平文を短い文章で書いて、生成AIに送れば、それなりの文書にして返してくれます。

# コード
“`python:qiita.rb
OPENAI_API_KEY =

元記事を表示

fletフレームワークの環境構築っぽいなにか(Mac環境)

以下内容は公式ドキュメントから抜粋
https://flet.dev/docs/
https://flet.dev/docs/getting-started/

メインのファイルに以下の記述を記載するだけで使用可能
基本的にはこっちでOK

import flet as ft

一式(バージョン情報など)ダウンロードするなら以下の順にコマンドを実行する

mkdir first-flet-app
cd first-flet-app
python3 -m venv .venv
source .venv/bin/activate
pip install flet
flet --version

最後にプロジェクトを作成して完了

flet create project-name

コマンドを叩き、以下の画面が表示されればOK
デフォルトはアプリ起動のようなので
ブラウザ起動に変更したい場合は「main.py」を修正すれば良い

flet run

![スクリーンショット 2024-04-14 12.31.16.

元記事を表示

OpenAIの画像生成Dall-E3を使うPythonコード

# 環境
M1 Mac 13.4.1
Visual Studio Code 1.87.0
python 3.11.3

ライブラリ
openai 1.12.0

# Visual Studio Codeのインストール

https://code.visualstudio.com/

左端の「拡張メニュー」から、
日本語化のインストールと、
pythonのインストールを行った。

# pythonとpipのインストール
ターミナルからpythonが入っていることを確認する。
入っていなければ、pipのインストールと、pythonのインストールを行う。
“`
python –version
“`
“`
python 3.11.8
“`

# OpenAIライブラリのインストール
“`
pip install openai
pip install –upgrade openai
pip show openai
“`
Version: 1.12.0

# OPENAI_API_KEYの設定
OpenAIのトークンはチャージ(課金)しておく。
$5チャージした。
Visual S

元記事を表示

ABC349回答メモ

# 0.はじめに
 冠のないノーマル開催。
問題の難易度はいつもより高かったような気がします。
Dが何とかクリアできましたが、WA2回の為か順位は伸びず
レートも±0でした。

# 1.A – Zero Sum Game
 最初はだれがだれに勝ったとかシミュレーションしないといけないのか?と
思いましたが、A問題でそれはないなと思い返し解法にたどり着きました。
【考え方】
 ・全員の点数の合計は0になる。
 ・一人分の分からずそれ以外の人の点数はわかる
 ・与えられた点数の合計を0から引けば、答えとなる人の点数が分かる

 https://atcoder.jp/contests/abc349/submissions/52298533

# 2.B – Commencement
 なかなかややこしい問題。
問題の意図をつかむのが難しかったですが
プログラムを作る過程で意外と単純な問題なことが分かりました。

【考え方】
 ・文字列Sについて文字ごとの出現数を数え
  辞書Dにキー:文字、値:出現数をセット
 ・辞書Dの値を順に読み込み値毎の個数を数え

元記事を表示

最近最も人気のあるプログラミング言語

![lamp-3219397_1280.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3769164/36cbee7b-130f-cdd9-2196-e4b10deacecb.jpeg)

近年、プログラミングの需要は急速に増加しており、多くの人々がこの分野でスキルを磨くことに関心を持っています。その中でも特に人気のあるプログラミング言語は何でしょうか?以下に、最近最も人気のあるプログラミング言語をいくつか紹介します。

Python(パイソン):
Pythonは、そのシンプルな構文と豊富なライブラリのおかげで、初心者から経験豊富な開発者まで幅広い層に人気があります。データサイエンスや人工知能(AI)、Web開発など、さまざまな分野で広く使用されています。

JavaScript(ジャバスクリプト):
JavaScriptはWeb開発に欠かせない言語であり、フロントエンドおよびバックエンドの開発に使用されます。ReactやAngularなどのフレームワークやライブラリの登場により、JavaScript

元記事を表示

OTHERカテゴリの最新記事