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

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

PythonコードでPDF ファイルを結合する

## はじめに
PDFの結合とは、複数のPDFファイルを1つのPDFファイルにまとめることです。これにより、ユーザーは関連するPDFファイルの内容を1つのPDFファイルに結合して、ファイルの分類化、管理、および共有を簡素にできます。例えば、文書を共有する前に、似たような文書を1つのファイルにまとめて、共有プロセスをシンプルにすることができます。本記事では、Pythonを使ってPDFファイルを結合する方法を説明します。

## ツール
* Python 3.12.0
* [Spire.PDF for Python](https://www.e-iceblue.com/Introduce/pdf-for-python.html)

このライブラリは購入する必要がありますが、30 日間の無料試用版も提供されています。
もっと多いサンプルコードについて、[Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-Python.html)をダウンロードして参照してください。

## インストール
まず、Spire.PDF

元記事を表示

[Python] scipy.stats.describe:記述統計量の算出

# `scipy.stats.describe`:記述統計量の算出

↓公式ドキュメント

https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.describe.html

# 実装
## インポート

“`python
import pandas as pd
from sklearn.datasets import fetch_california_housing
from scipy import stats
“`

## データセットの読み込み
“`python
housing = fetch_california_housing()

data_arr = housing.data
features = housing.feature_names
“`

## 記述統計量の算出

引数とデフォルト値は以下の通り。
`scipy.stats.describe(a, axis=0, ddof=1, bias=True, nan_policy=’propagate’)`
* `a`:入力データ(配

元記事を表示

集合と論証「2024 札幌医科大学 前期【1】(3)」をChatGPTとsympyでやってみたい。Floor and ceiling functions

# オリジナル

>2024年解答速報 数学入試問題 様

24年 札幌医大 1(3)

上と同じです。大学入試数学問題集成 様>前期【1】(3) テキスト
https://mathexamtest.web.fc2.com/2024/202411001/2024110010100mj.html#top-0103

公式ホームページ
未登録(2024/03/06)

# ChatGPT-3.5先生へ
“`

【1】 次の各問に答えよ.

(3)  1 から
<

元記事を表示

lpython: llvmでNativeコンパイル可能な型付Python派生言語

あけましておめでとうございます。

時間がないので、おいおい加筆・修正する予定です。=> この記事は、紹介だけ。

lpythonなる派生Pythonが出現しています。
未だ、よく読めていませんが、PythonをNativeコンパイルできるようです。
JITコンパイラも備えているみたい。

URL
1. https://lpython.org/
2. https://github.com/lcompilers/lpython

|名前|書き換え必要か?|Native|JIT|MEMO|
|—|—-|—|—|—|
|Cython|No|Yes|No||
|PyPy|No|No|Yes|
|lpython|No?|Yes?|Yes?||
|mojo|**YES**|Yes|No?||
|codon|import部の書き換えが必要|Yes|No||

私が高速化に使っているのは主にCythonで、時々PyPyを使用。
今後、選択肢にlpythonが加わってくれる事を願っています。

元記事を表示

IronPython との付き合いかた(その2)

## はじめに
先日「IronPython との付き合いかた」を投稿しましたが、辞書や pip の扱いなど、割愛した内容を続編としてまとめました。
引き続き、個人の備忘メモとご理解ください。

https://qiita.com/Mt_SQ/items/ddbcf39c19ad6591bd96

以降、上記を「本編」と表記します。
## 確認環境
+ Windows 11 Pro(Ver. 23H2)
+ .NET Runtime 8.0.2 (64-bit)
+ IronPython 3.4.1 (3.4.1.1000)

今回は、加えて Chromebook ASUS CX1500CKA-EJ0015(Celeron N4500、メモリ4GB) の Linux 開発環境(debian 12 + .NET Runtime 8.0.2)でも動作することを確認しています。

## IronPython のバージョンについて
周回遅れのバージョン3.4 とはいえ、IronPython3 のリリースまでこぎつけた開発チームには心から敬意を表します。

バージョンにかかわらず一部の機能は先行導

元記事を表示

You exceeded your current quota, please check your plan and billing details.

解決までに長い時間がかかってしまいましたが,些細な間違いだったため共有します.

## エラー
“`
openai.RateLimitError: Error code: 429 –
{
‘error’: {
‘message’: ‘You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.’,
‘type’: ‘insufficient_quota’,
‘param’: None,
‘code’: ‘insufficient_quota’
}
}
“`

## 前提
– 新しくorganizationに参加した.
– API keyを生成して利用したところ,上記のエラーになった.
– Credit Grantsには十分のクレジットが入

元記事を表示

ChatGPTとPythonで学ぶ PyCaret

おはこんばんちわ。今日も引き続きChatGPT先生をお迎えして、「ChatGPTとPythonで学ぶ PyCaret」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

おはようございます、またはこんばんは。今日もよろしくお願いします。PyCaretについて話すのは楽しみですね。では、どこから始めましょうか?

### **user**:

まず、PyCaretで何ができるか、できるだけ詳しく網羅的に教えてください。

### **assistant**:

PyCaretは、Python用のオープンソースの機械学習ライブラリです。簡単なコードで各種の機械学習タスクを高速に実行できます。特に、予測モデリングのよく行われる一連のステップを自動化したり、ワンラインのコードで行ったりできます。このライブラリが優れている点はその使いやすさにあります。

以下に、PyCaretで可能な主な機能を詳しく説明します:

1. データの前処理: パイプラインの一部として、欠損値の処理、カテゴ

元記事を表示

[PRMLまとめ]1.2 確率論

# はじめに
前回に続き、機械学習界隈で有名なパターン認識と機械学習(PRML)を読んで学んだ内容を書いていきたいと思います。

前回記事はこちら:

https://qiita.com/sasshi_i/items/469800054ada51a8b6a3

今回は確率論について書きます。

# 1.2 確率論
パターン認識の分野では不確実性の概念が重要である。データサイズが有限であることや、計測ノイズなどによって不確実性が発生する。確率論は不確実性に対して定量化と一貫した枠組みを与え、パターン認識の基礎となっている。

### 確率に関する記号
* ある事象Aが起きる確率: $p(A)$
* ある事象A, Bが同時に起きる確率(同時確率): $p(A, B)$
* Bが与えられた下でAが起きる確率(条件付き確率): $p(A|B)$

## 確率に関する定理
### 加法定理
事象A, Bが同時に起こらない場合、次の

元記事を表示

【Python】文字列は最大の悪だ!文字列撲滅に寄与するconst.py

# 目次
[1.なぜ文字列は最大の悪なのか](#なぜ文字列は最大の悪なのか)
[2.実例](#2-実例)
[3.おわりに](#3-おわりに)

# 1. なぜ文字列は最大の悪なのか
開発現場では、極力文字列をプログラム内で書かないようにしています。
Swiftで言えばR.swiftという外部ライブラリをわざわざ用いることで文字列排除をしています。
ではなぜ、これほど`文字列排除運動`が盛んに行われているのか、、、
それは、ヒューマンエラーを極力避けるためです。
人間はミスをするものです。普段からキーボードを見ずにブラインドタッチでガンガンタイプしているエンジニアならタイピングミスなどのヒューマンエラーによる予期せぬところでのバグ発生。複数人での開発であれば尚更です。
これが一番の無駄。
そこで現場で採用しているのは、文字列管理の手法です。

# 2. 実例
早速コードを載せます。 
①文字定義ファイル
~~~python: const.py
from enum import Enum

# debug系
class

元記事を表示

血圧と体重管理アプリを作ってみた

### 背景
健康診断で血圧が高いと判断されたので、再受診しました。その時に血圧測定手帳はあるのですが、せっかくなので、アプリで管理したいと思い、作ってみた

### 完成形

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576081/6bef4a91-6a90-6db6-e2f0-d938f56f6e3e.png)

### 要件
* 血圧、心拍数、体重の入力ができること
* グラフ表示できること
* 画像保存できること

### ポイント解説
* matplotlibは比較的に人気のあるライブラリなのですが、kivyとの相性はあまりよくない(というより情報が散乱していた)ため、なかなかグラフ表示までが長かった。
* もう一つは、subplotsという使い方があるのですが、これを使うと上手くグラフが出ない

### requirements.txt
“`YML
$ pip list
Package Version
——————-

元記事を表示

pythonのconfigparserを用いてconfig.iniからListを読み込みたい

### configparserの基本的な使い方
素晴らしい記事があるのでこちらを参照ください。
– [pythonプログラムにおける設定ファイル管理モジュール](pythonプログラムにおける設定ファイル管理モジュール~configparserの使い方と注意点~)
### 問題点
– 設定ファイル(config.ini)にリストを記述してリストとして読み込みたいが、configparserは文字列として読み込んでしまう。
### 解決方法
– eval関数を利用して、式として評価してあげる。

### サンプルコード
例えば特定のフォルダ内にある、複数の拡張子を扱いたい場合のことを考えます。
`config.ini`
– DEFAULTの部分は任意の変数名に書き換えれます。
“`
[DEFAULT]
EXTENSION_TYPES = [
“.zip”,
“.log”,
“.png”
]
“`
`example.py`
– configparserを利用してconfigを読み出します.
– eval関数を利用して文字列をリストとして評価します.
`

元記事を表示

受け取ったファイル名をos.path.joinで処理する時の注意

ほとんど以下の記事に書いてあることと同じなのですが、やらかしてしまったのでメモします。

https://qiita.com/FGtatsuro/items/1ab9ebf6505bef1834f8

os.path.join は以下の仕様になっています。

> 引数に絶対パスがあると、その前の引数は無視されるので注意。

基本的にこれだけなのですが、この仕様を知らずにどのようなやらかしをしたのか紹介します。

## バグっているコード
ファイル名が入力されて、なんらかの処理をした上でテンポラリディレクトリに書く処理があったとします。

“`python
from tempfile import TemporaryDirectory
import os

def func(filename: str):
with open(filename, “r”) as f:
some_str = f.read()

# なんらかの処理

with TemporaryDirectory() as tmp_dir:
with

元記事を表示

「checking macOS SDKROOT… xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)…」の対処法

久々に個人で開発してみようと思い、過去に構築(荒廃)したpython環境をリセットした後、
pythonをインストールしようと思ったら以下のエラーが発生。

“`
checking macOS SDKROOT… xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
“`

エラーを見た感じXcodeのコマンドラインツールが見つからないっぽい。
とりあえずググってみると以下の記事が。
どうやらMacOSをアップデートすると起きるらしい。
https://forums.developer.apple.com/forums/thread/673827

以下のコマンドを実行してXcodeのコマンドラインツールをインストールしたら直りました
“`
xcode-select –install
“`

元記事を表示

お手軽でカンタンなFast-Whisper環境構築

# はじめに

Faster-Whisperを使ってみたいけど、環境構築が面倒だなーと感じている私のような輩のために、比較的カンタンでクリーンな環境構築の方法を紹介します。
ここで”クリーンな環境”とは「OSのパッケージを汚さずに設定できてカンタンに元通り」という意味合いです。

# 結論
VoiceVoxインストール済み環境なら、追加インストールなしでfaster-whisperを起動できます。
VoiceVoxのインストールはカンタンです。つまりfaster-whisperもカンタン。

# Faster-Whisperとは?

STTのWhisperをローカルで高速に動かせるパッケージらしいです。大勢の方がPostしたり記事にしたりしているので、詳しい説明はそちらで。

公式はこちら(かな?)
https://github.com/SYSTRAN/faster-whisper

# 何が面倒なの?

WhisperをGPUで実行しようとすると、CUDAとかcuDNNとかをローカル環境にインストールする必要があります。
これらのライブラリが結構頻繁にバージョンアップされていまして、

元記事を表示

ずんだもんとおしゃべり(VOICEVOX+chatGPT)音声会話

# はじめに
VoiceVoxとchatGPTをつなぐ手順です。
ネタ的には古いですが、この記事は、2024年3月に書きました。その間に、openAIのバージョンも上がりました。

# 躓き・気づき
①chatGPT Plusを使って、クレジットを追加していると思っていたが、追加できていなかった。
②Visual Studio Codeの右上の三角の実行ボタンはうまくいかない原因になっていた。ショートカットF5で「デバッグの開始」をする必要があった。右下のpythonバージョンあわせを間違っていた。
③Macのキーボードうまく動かない罠。

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

ライブラリ
openai 1.12.0
pyaudio 0.2.14
sounddevice 0.4.6
numpy 1.26.0
soundfile 0.12.1
keyboard 0.13.5

# 手順
# ①「VoiceVox 0.16.1」をインスト

元記事を表示

Pythonで「int関数/float関数の使い方(文字列を数値に変換する)」の動作を確認してみた

# 概要

Pythonで「int関数/float関数の使い方(文字列を数値に変換する)」の動作を確認してみました。
以下のページを参考にしました。

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

# 実装

以下のファイルを作成しました。
“`sample.py
print(int(17.58))
print(int(“1011”, 2))
print(int(“A4”, base=16))

print(float(19))
print(float(“78.225”))
print(float(“-7.52e-3”))
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
17
11
164
19.0
78.225
-0.00752
“`

# まとめ

何かの役に立てばと。

元記事を表示

高校入試 切頭三角柱「【2023年山梨県】公立高校受験 数学解説 大問6 2(3)」をsympyとFreeCADでやってみたい。

・私の解答の方法は、中学生の学習指導要領の範囲外です。ベクトル成分表示です。
https://www.deepl.com/ja/translator#ja/大人げないです。
・「**切頭三角柱**」は、大学入試問題の過去問類題にありませんでした。
 共通テストの太郎さんと花子さんは、2024/03/05 現在。
 切頭三角柱を扱っていないです。
・3次元FreeCADのワイヤーフレームです。
・勉強中。軸線方向の見え方。文字の回転です。
# オリジナル
pdf 問題文 最後の大問、最後の小問です。
https://www.toshin.com/koukou_nyushi/files/2023/sugaku_q/yamanashi_sugaku_q.pdf#page=6

youtube 又は 過去5年分 様 から
~~https://homepage1.canvas.ne.jp/ynaka/R5PDF/19yamanashi.pdf#page=6~~

19山梨県<過去5年分
<http://homepage1.canvas.ne.jp/ynaka/zenmon.html

数学・英

元記事を表示

点電荷による電場解析

# はじめに
クーロンの法則により、点電荷の電場と電位は解析することができる。しかし、一般の形のある電荷を持つ物体によって働く電場や電位を求めるのは難しい。そこで、今回は物体を点電荷の集合体と考えることによって広さ有限の平面コンデンサに働く、電場と電位についてPythonを用いて解析することができるか考察する。ただし、電場と電位の図示にmatplotlibを用いて、電場の計算にnumpyのgradientを用いた。

# プログラム
電極平板を微小の点電荷に分解して独自にクーロン法則を立てて、最後に加算することで電位を求めるという方法を用いる。以下のようなプログラムを作成する。

“`python con_E.py
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

coords,ds = np.linspace(-0.6,0.6,100,retstep=True)

#XY領域の作成
X,Y = np.meshgrid(coords,coords)

元記事を表示

GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Sonnet)、Claude3(Opus)、Gemini Proに同じ質問をして、回答結果を比較してみた

## はじめに
GPT-3.5-TurboとGPT-4-Turbo、Claude2、Claude3(Sonnet)、Claude3(Opus)、Gemini Proに同じ質問をして、回答結果を比較してみました。

## 環境
– Windows 11
– Python 3.11.5
– LangChain
– AzureOpenAI
– Boto3
– Pandas
– OpenPyXL

## 実装

### 必要なライブラリのインストール
以下のコマンドで必要なライブラリをインストールします。
“`
pip install langchain openai boto3 langchain-anthropic langchain-google-genai pandas openpyxl
“`
  
### 質問用のCSVファイル
質問用のCSVファイルである、test_qa.csvを作成し、以下をコピペしてください。
“`test_qa.csv
質問
次の文章を要約してください。Anthropicは10月16日(現地時間)、同社が公開するAIチャットボット「Claude 2」の

元記事を表示

PythonでExcelの加工 フィルタ設定、セル塗りつぶし、中央揃え

仕事でPythonでExcelの加工を依頼されたため、
その時に使用したフィルタ設定、セル塗りつぶし、中央揃えをメモにまとめておきます。
どなたかの役に立つと嬉しいです。

“`
import openpyx|
from openpyxl.styles import PatternFill
from openpyxl.styles import Alignment

wb = openpyxl.load_workbook(‘対象ファイルパス’)

ws = wb[‘対象シート名’]

#A〜D列をフィルタ設定
ws.auto_filter.ref = ‘A1:D1′

grayfill = PatternFill(patternType=’solid’ , fgColor=’d3d3d3′)
for row in ws[‘D2:D5’]:
for cell in row:
#D列のセルを中央揃えに設定
cell.alignment = Alignment(horizontal=’general”)
#D列の2行目〜5行目を灰色塗りつぶし
cell.

元記事を表示

OTHERカテゴリの最新記事