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

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

[Python] 例外処理

## 例外処理とは

例外処理は、プログラムの実行中に予期しないエラーが発生する可能性がある場合に備えてコードを記述することです。
これにより、プログラムが突然異常終了することなく正常に実行されるようにします。

**例外処理**の目的は次のとおりです:

– プログラムの実行中に突然のエラーによる異常動作を防ぎます。
– 発生したエラーを処理し、回復または回避することで、プログラムの正常な実行を維持します。

Pythonでは、例えば、0で割るとZeroDivisionErrorが発生します。

“`python
# 例
try:
result = 10 / 0
except ZeroDivisionError:
print(“0で割ることはできません。”)

“`

上記のコードでは、0で割ろうとした際に発生する**ZeroDivisionError**を処理しています。

複数の例外を処理するために、exceptをネストして使用することもできます。

“`python
# 例
try:
some_list = [1, 2,

元記事を表示

Pythonにおけるダックタイピングの理解と実用例

### はじめに
Pythonは動的型付け言語であり、その柔軟な型システムを活かしたプログラミングスタイルが可能です。特に「ダックタイピング」はPythonの強力な特徴の一つで、この記事ではダックタイピングの概念と実際のコード例を通じてその理解を深めていきます。

### ダックタイピングとは?
ダックタイピングは、「もしもそれがアヒルのように見え、アヒルのように泳ぎ、アヒルのように鳴くなら、それはおそらくアヒルだろう」ということわざに由来します。Pythonにおけるダックタイピングは、オブジェクトの型そのものよりも、その振る舞いや持つメソッドに注目するプログラミングスタイルを指します。

### ダックタイピングの利点
ダックタイピングを利用することで、異なるクラスのオブジェクトでも共通のインターフェース(メソッドなど)を持つ場合に、同じように扱うことができます。これにより、コードの柔軟性が高まり、異なる型のオブジェクト間での再利用が容易になります。

### 実用例1:異なるクラスのオブジェクトを同一視する

“`python
class Duck:
def sound(

元記事を表示

【合格体験記】1ヶ月で3つのPython認定試験に合格しました

# はじめに

2024年の4〜5月にかけて、[Pythonソフトウェア財団(PSF)が運営するPythonエンジニア認定試験](https://www.pythonic-exam.com/exam)に3つ合格しました。スコアは、基礎試験とデータ分析試験が950、実践試験が925でした。

本記事では、受験のきっかけや勉強方法、これから受験を考えている方へのアドバイス等を共有させていただきます。

![exam-result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2969456/f0fe8e77-fead-a762-7f31-e988e21ad27c.png)

:::note warn

2024/7/1より、データ分析試験が一部改訂される予定です。最新の試験情報は[公式サイト](https://www.pythonic-exam.com/exam)を必ずご確認ください。

:::

# 受験のきっかけ
私は2018年から業務でPythonを使用しています。Python認定試験の存在は以前から

元記事を表示

タイタニックの質的変数で数量化理論

Kaggleの有名なコンペの一つにタイタニックで生き残る人を見つけるのがあります。
そこには質的変数が非常に多いので質的変数を使って数量化理論をやってみようと思います。
# ライブラリのインポート
“`Python3
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import pandas as pd
import statsmodels.api as sm
import numpy as np
import matplotlib.pyplot as plt
“`

# データの読み込み
欠損値は下手に代表値で補完すると実データと異なる可能性があるので消します。
“`Python3
df = pd.read_csv(“titanic.csv”)
df = df.dropna()
df.head()
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27

元記事を表示

Pytorchの推論を爆速化【torch_tensorrt】

# めちゃくちゃ速くなるんでだまされたと思ってやってみて

シンプルに画像分類モデルでやってみましょう。

結論から言うと、

|runtime|time(sec)|
|—-|—-|
|torch|0.009|
|torchscript|0.003|
|**torch_tensorrt**|**0.001**|

outputは全部同じで
class: ‘tiger cat’
confidence: 35.1

# 使用方法

### インストール torch-tensorrt

“`shell
pip install torch-tensorrt
“`

### モデルの変換

“`python
import torch
import torchvision.models as models
import tor

元記事を表示

初心者がPythonで東京の降水量を予測してみました

気象庁から気象データ(気温、降水量、湿度)をダウンロードして東京の降水量を予測してみました。

はじめに
現在、製造業に勤めており、昔から興味のあったプログラミングに挑戦する事を決意しました。
スクールを選ぶ中で、Pythonに強いAidemy Premiumを選ぶ事にしました。
***
**実行環境**

Python
Windows
Qiita
Google Colaboratory

***
**目次**
1. テーマを選んだ理由
2. 気象データの中身
3. データ前処理
4. モデルのトレーニング
5. モデルの評価とグラフの表示
6. まとめ

***
**1. テーマを選んだ理由**
趣味がキャンプとツーリングの為、降水量が気になる事から選ばせて貰いました。

***
**2. 気象データの中身**
期間 : 2022/6/01 ~ 2022/6/30
場所 : 東京

まずデータの準備をします。
“`python:
import pandas as pd

data = {
‘Day’: [
‘2022/6/1’, ‘2022/6/2’, ‘2

元記事を表示

SciPy curve_fitでPandas Seriesのfloat32型は動作しないことへの注意と対策

## 問題の概要
[`scipy.optimize.curve_fit()`](https://docs.scipy.org/doc/scipy-1.14.0/reference/generated/scipy.optimize.curve_fit.html)関数を使用してフィッティングを行う際、`float32`型の`pandas.Series`を使用すると予期しない結果が得られることがあります。この問題は、SciPyの内部処理に起因しています。

本記事では、その再現コードを示すとともに、解決方法について説明します。忙しい方は、この記事の[解決策](#解決策)をご覧ください。

## 再現コード
本記事で使用したモジュールのバージョンは以下の通りです。
– Python: 3.12.4
– Pandas: 2.2.2
– Numpy: 1.26.4
– matplotlib: 3.8.4
– scipy: 1.13.1

NumpyとPandasで、`float32`型と`float64`型で挙動を比較します。

“`python
import numpy as np
impor

元記事を表示

Python_Googleアラート_240708

### junji様のPython 3 エンジニア認定データ分析試験合格体験記を公開しました – CNET Japan
CNET Japanは、junjiさんのPython 3 エンジニア認定データ分析試験合格体験記を公開しました。junjiさんは、基礎を体系的に学べたことが大きな成果だと語っています。合格体験記では、試験の感想や学習方法などが詳しく紹介されています。

#### https://japan.cnet.com/release/30929346/

### エラー
エラーが発生しました。

#### http://www.msn.com/ja-jp/news/techandscience/アンケート調査の偏ったデータをバランス調整するpythonモデル「balance」-米metaが開発/ar-AA1efx8b?apiversion=v2&noservercache=1&domshim=1&renderwebcomponents=1&wcseo=1&batchservertelemetry=1&noservertelemetry=1

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その96 テンキーとマウスによる中心となるノードの移動

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/17b0438676f4a41a906c

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

| リンク | 説明 |
|:–|:–|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/095/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/095/ai.py) | AI に関する関数 |
| [util.py](https://github.com/ysgeso/marubatsu/blob/master/095/util.py) | ユーティリティ関数の定義。現在は `gui_pl

元記事を表示

Python AIプログラミング その1 環境構築、文字認識

# 1. はじめに
最近家でプログラミングあまりやっていないなと思い、以前やろうとしたWebサービス作りも滞ってしまっていたのでAIプログラミングを少し勉強してみようと思い、[こちら](https://www.amazon.co.jp/%E3%81%99%E3%81%90%E3%81%AB%E4%BD%BF%E3%81%88%E3%82%8B-%E6%A5%AD%E5%8B%99%E3%81%A7%E5%AE%9F%E8%B7%B5%E3%81%A7%E3%81%8D%E3%82%8B-Python%E3%81%AB%E3%82%88%E3%82%8BAI%E3%83%BB%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%BB%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-TensorFlow2%E5%AF%BE%E5%BF%9C-%E3%82%AF%E3%82%B8%E3%83%A

元記事を表示

Whisperで楽曲データ文字起こし→からのPythonでカラオケする

前回までで、Pythonで動くオーディオプレイヤーを自作してみました(ちゃちいです)

https://qiita.com/mebi/items/ad36c2cb2ff71cabfdff

これにカラオケ機能をつけたいと思います。

# 歌詞データの用意

OpenAI社のWhisperという文字起こしモデルを使います。

pip install -U openai-whisper

whisperはtorchで動きます。
下記のコードを実行してGPUで動くかどうか確認しましょう。

import torch
print(torch.__version__, torch.cuda.is_available())

“`
2.3.1+cu118 True
“`
みたいに表示されればOKです。

※torchを入れとかないと、CUDA+CUDNN設定した環境で、Whisperモデル動かしてもCPUで動きます。
※私は上でハマりました。

“`python

import whisper
model = whisper.load_model(“l

元記事を表示

【Python】Excelデータを別のブックにコピーする(範囲指定)

import openpyxl as px

#aというExcelをwbに関連づける
wb = px.load_workbook(‘Book1.xlsx’)

#aシートを関連付け
ws = wb[‘Sheet1’]

#bというExcelをwbに関連づける
wb2 = px.load_workbook(‘Book2.xlsx’)

#bシートを関連付け
ws2 = wb2[‘Sheet1’]

#コピー元のaシート(範囲指定:row=行,column=列)
for i in range(3,20):
for j in range(1,3):
copy = ws.cell(row = i, column =j).value

#コピー先のbブック、bシートにコピー元のデータを貼り付け
ws2.cell(row = i, column =j , value = copy)

#bブックを「copy4」で保存する
wb2.save(filename = ‘Book2.xlsx’)

元記事を表示

【Python】Excelのデータを別のブックにコピーする(単体)

import openpyxl as px

#aというExcelをwbに関連づける
wb = px.load_workbook(‘Book1.xlsx’)

#aシートを関連付け
ws = wb[‘Sheet1’]

#bというExcelをwbに関連づける
wb2 = px.load_workbook(‘Book2.xlsx’)

#bシートを関連付け
ws2 = wb2[‘Sheet1’]

#コピー元をaシートの任意のセル
copy = ws.cell(row = 3, column =1).value

#コピー先のbブック、bシートにコピー元のデータを貼り付け
ws2.cell(row =2, column =1 , value = copy)

#bブックを「copy4」で保存する
wb2.save(filename = ‘copy4.xlsx’)

元記事を表示

Pubchemからexprimental propertiesを抽出する方法

## はじめに
Pubchemという化合物のデータがたくさん載っているサイトがあります。検索結果一覧をCSVでダウンロードできたりして便利です。
さて、化合物固有のページには実験値の情報はありますが、この一括ダウンロードしたCSVには融点、沸点といった実験値が含まれていません。一つ一つページを手作業で確認するのは面倒なのでなんとかならないでしょうか?

https://pubchem.ncbi.nlm.nih.gov/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3471244/0370e7d7-0de2-3370-db61-44ab55133ff0.png)
csvには識別子、名称、構造および自明なパラメータのみが含まれます。Pubchemから情報を取得するためのライブラリ、pubchempyもありますが、実験値の取得はサポート外です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Loguruでログを取る①

# はじめに
業務で流用しているログのソースコードを読んだ時、
意味わからんかったのでloggingについて調べてたら
Loguru見つけたので使ってみたら
分かりやすくて楽やった♪

https://qiita.com/shotakaha/items/0fa2db1dc8253c83e2bb

# ログを取るについて

ご参考になれば嬉しいです:relieved:

https://qiita.com/i-am-misaki/items/eb1b4b3cb8d38ff113ec

# Loguruとは
>Loguruは、Pythonで楽しいロギングを実現することを目的としたライブラリです。

https://loguru.readthedocs.io/en/stable/

# インストール
“`python
pip install loguru
“`

# 使い方
“`python
from loguru import logger

logger.debug(“That’s it, beautiful and simple logging!”)
“`

###### 結果

元記事を表示

【Python】tkinterを使用してText領域に縦スクロールバーを表示する方法

## はじめに

tkinterにてText領域に縦スクロールバーを表示する方法を紹介します。
また、縦スクロールバーをマウスでつかんで上下に動かす方法もあわせて紹介しています。
Text領域に縦スクロールバーを表示する際の参考になれば幸いです。

#### 開発環境
・WSL2/Ubuntu環境
・Python: 3.10.12

## Text領域で縦スクロールバーを表示する方法

“`sample_bar_vertical_scroll.py:
import tkinter as tk
from tkinter import Text

# configure root
root = tk.Tk()
root.title(“Sample_Bar_Vertical_Scroll”)
root.geometry(“800×600”)

# display bar_vertical_scroll
bar_vertical_scroll = tk.Scrollbar(root, orient=tk.VERTICAL)
bar_vertical_scroll.pack(side=tk.

元記事を表示

正四面体回転コードの仕組み

## コード紹介
[![Gist](https://img.shields.io/badge/GIST-FFFFFF?style=for-the-badge&logo=github&logoColor=black)](https://gist.github.com/citrus-mizuha/7dd1513d8ce0f3ed174a30a57dafa2bb)

コード

“`tetrahedron_spin.py
import math
import tkinter as tk
import sys
BG_COLOR = “black”
FG_COLOR = “white”

def rotate_point(x, y, z, angle_x, angle_y, angle_z):
y1 = y * math.cos(angle_x) – z * math.sin(angle_x)
z1 = y * math.sin(angle_x) + z * math.cos(angle_x)

x2 = x * ma

元記事を表示

Qiita-CLIで作ったmdファイルを整理するpart3

# はじめに

Qiita-CLI を使っていると md ファイルが多くなりすぎて管理ができなくなってしまう.
もちろん,後に編集はできるようにしたいのですべて public フォルダにおいておきたい.(md ファイルが public フォルダにないとプレビューがみれない)

そのため,ファイル名を正規化して,ツリー構造を作成することでどのような記事があるかを一目でわかるようにする.

# 前回の記事

https://qiita.com/soranjiro/items/dbd7833190e6e4b48f77

# 自動でファイル名を変更する

前回,ファイル名を変更するスクリプトを作成した.

しかし,それを毎回実行するのは面倒なので,自動で実行するようにしたい!

どうせファイルで書いているなら,git管理をしているということで,github actions で自動実行するようにする.

# github actions で自動実行

github actions は github で提供されている CI/CD ツールである.

今回は,Qiita-CLI で作成した md

元記事を表示

Pythonのプロファイリングとパフォーマンス最適化: cProfile, line_profilerの使用法とボトルネックの特定

## はじめに

こんにちは!今回は、Pythonのプロファイリングとパフォーマンス最適化について深掘りします。特に、cProfileとline_profilerの使用法、およびボトルネックの特定方法に焦点を当てて解説します。これらのツールと技術を適切に活用することで、Pythonプログラムの性能を大幅に向上させることができます。

## 1. プロファイリングの基本

プロファイリングとは、プログラムの実行時間や資源使用状況を分析することです。Pythonには、標準ライブラリに含まれるcProfileや、サードパーティのline_profilerなど、様々なプロファイリングツールがあります。

## 2. cProfileの使用法

cProfileは、Pythonの標準ライブラリに含まれる関数単位のプロファイラーです。

### 2.1 基本的な使用方法

“`python
import cProfile

def fibonacci(n):
if n < 2: return n return fibonacci(n-1) + fibonacci(

元記事を表示

ABC329Dを解いた

筆者はレート600前後の茶色コーダ

7月4日に開催されたADTで登場した以下の問題を解いていく

https://atcoder.jp/contests/abc329/tasks/abc329_d

ADTのページ(ALL)

https://atcoder.jp/contests/adt_all_20240704_2/tasks/abc329_d

# 実装コード

解説をみずにとりあえず、セグ木を実装し、候補者番号と票数を載せて値更新を回した
値更新するたびに全区間の集計を入れて表示したらACした。

セグ木の実装は以下を使用した
– [shakayami/ACL-for-python](https://github.com/shakayami/ACL-for-python)

“`python
from collections import defaultdict
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.r

元記事を表示

OTHERカテゴリの最新記事