Python関連のことを調べてみた2023年09月25日

Python関連のことを調べてみた2023年09月25日

M2macでmanimがインストールできない

M2Macのvenv上で以下のエラーに遭遇
“`

manimpango.c:773:10: fatal error: ‘cairo.h’ file not found
#include “cairo.h”
^~~~~~~~~
1 error generated.
error: command ‘/usr/bin/clang’ failed with exit code 1
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for manimpango
Building wheel for pycairo (pyproject.toml) … error
error: subprocess-exited-with-error

× Building wheel

元記事を表示

GA4のサンプルデータを用いてロジスティック回帰から継続ユーザーの特徴を探る

## 今回やること
BigQueryのサンプルデータにある[パズルゲーム「Flood-It!」のGA4アクセスログデータセット](https://developers.google.com/analytics/bigquery/app-gaming-demo-dataset)を用いて、相関行列、ロジスティック回帰から継続/ 離脱ユーザーの特徴を探ってみる。(外れ値/異常値処理、精度向上、CV等は省く)

※過去に同データセットを用いて書いた記事
[GA4のサンプルデータから成長指数を算出してみる](https://qiita.com/NS007/items/33a7a80aedf16d7fabe3)
[GA4のサンプルデータからMAUに占めるユーザータイプ別に指標を作ってみる](https://qiita.com/NS007/items/a16f9cb254b0d9a48ace)
[GA4のサンプルデータからタイプ別&定着度合い別に継続率を出してみる](https://qiita.com/NS007/items/b2c75f4ce27b64dbd89c)
[GA4のサンプルデータからエ

元記事を表示

watsonx.aiのLLMでLangChainを使ってPDFの内容をQ&Aをする

今更ながら生成系aiもやってみたくなったので、IBMの生成系aiサービス、watsonx.aiをpython+[LangChain](https://python.langchain.com/docs/get_started/introduction)で使ってみます。

尚、最初にお断りしておきますが、初心者が適当に各種ドキュメントを見て作った「やってみた」系の投稿ですので、この使い方を推奨してるというものではありません。

[2023年9月7日にLangChainフレームワークをwatsonx.aiのfoundationモデルで使用できるようになりました。](https://www.ibm.com/docs/en/watsonx-as-a-service?topic=overview-whats-new#langchain-extension-for-the-foundation-models-python-library)これによってちまたに溢れるChatGPTを使った[LangChain](https://python.langchain.com/docs/get_started

元記事を表示

サーバーサイドのデザインパターン[Singleton Patternの章]

# はじめに
1. Singleton Patternの定義と特性
Singleton Patternとは、特定のクラスのインスタンスが一つしか存在しないことを保証し、そのインスタンスへのアクセスポイントを提供するデザインパターンです。
主に設定管理やログ管理、キャッシュなどの用途で利用されます。
2. Singleton Patternの利点
– リソースの節約
インスタンスが一つしか存在しないため、リソースを節約できます。
– 一貫性の確保
シングルトンを通じてグローバルな状態を管理できます。
– コントロールの集中
インスタンスの生成を制御できるため、特定の処理を中央化できます。
3. PythonでのSingleton Patternの実装
“`python
class Singleton:
_instance = None

def __new__(cls):
if cls._instance is None:
cls._instance = super(Singleton, cls).__new__(cls)

元記事を表示

機械学習の評価指標とPythonでの実装【二値分類 後編+他クラス分類】

「効果指標入門」を参考に、機械学習における評価指標をまとめました。今回は二値問題における評価指標の実装例と他クラス分類における評価指標を取り上げます。

※内容に間違いがあればご指摘いただけますと幸いです。

# 評価指標とは
機械学習モデルの性能を評価するために使用される「評価指標」とは、モデルがタスクをどれだけ効果的に実行しているかを定量的に測定するための尺度や基準です。

これらの指標は、モデルの訓練やチューニングにおいて不可欠であり、モデルの予測がどれだけ正確で信頼性があるかを評価します。

評価指標には大きく分けて二つのタイプがあります。一つは「分類タスク」のためのもので、もう一つは「回帰タスク」のためのものです。今回は分類タスクに焦点を当て、二値分類の後編としてPythonによる評価指標の実装を行います。

また、二値分類の評価指標を拡張した他クラス分類における評価指標についてもまとめます。

前半記事はこちら
https://qiita.com/pnd642/items/71369fc19101b27a91f6

回帰タスクにおける評価指標はこちら
https://qii

元記事を表示

機械学習の評価指標とPythonでの実装【二値分類 前編】

「効果指標入門」を参考に、機械学習における評価指標をまとめました。今回は二値問題における評価指標を取り上げます。

※内容に間違いがあればご指摘いただけますと幸いです。

# 評価指標とはなにか
機械学習モデルの性能を評価するために使用される「評価指標」とは、モデルがタスクをどれだけ効果的に実行しているかを定量的に測定するための尺度や基準です。

これらの指標は、モデルの訓練やチューニングにおいて不可欠であり、モデルの予測がどれだけ正確で信頼性があるかを評価します。

評価指標は大きく分けて二つのタイプがあります。一つは「分類タスク」のためのもので、もう一つは「回帰タスク」のためのものです。今回は、分類タスクに焦点を当て、その中でも特に「二値分類」における評価指標について説明します。

回帰タスクにおける評価指標は以下にまとめています。
https://qiita.com/pnd642/items/089143957de635df6444

# 分類タスク
機械学習のタスクによって使用される評価指標は異なります。

分類は、ある入力が与えられたときに、その入力がどのカテゴリまたはクラス

元記事を表示

機械学習の評価指標とPythonでの実装【回帰編】

「効果指標入門」を参考に、機械学習における評価指標をまとめました。今回は回帰問題における評価指標を取り上げます。後半ではPythonでの実装例を記載しています。

※内容に間違いがあればご指摘いただけますと幸いです。

# 評価指標とはなにか
機械学習モデルの性能を評価するために使用される「評価指標」とは、モデルがタスクをどれだけ効果的に実行しているかを定量的に測定するための尺度や基準です。

これらの指標は、モデルの訓練やチューニングにおいて不可欠であり、モデルの予測がどれだけ正確で信頼性があるかを評価します。

# 回帰タスク
回帰タスク、二値分類タスク、多クラス分類など、タスクによって使用される評価指標は異なります。

そのうち、今回は回帰タスクを取り上げます。

回帰タスクでは、入力変数(特徴量)と目標変数(予測対象)の間の関係をモデル化し、連続的な数値を予測します。予測対象の変数は実数値で、例えば価格予測、時間予測、数量予測などを行います。

# 回帰における評価指標
回帰問題では、以下のような評価指標が一般的に使用されます。
– 平均絶対誤差(MAE)
– 平均絶対パーセ

元記事を表示

XMLについて調べてみた

# XMLの基礎と使用例
1. XMLとは?
XMLは、データを構造化して保存・輸送するための言語です。HTMLと同様に、XMLもタグを使用しますが、HTMLがデータの表示を主に目的としているのに対し、XMLはデータの構造化を目的としています。
2. XMLの構文
XMLはタグでデータを囲みます。タグは、開始タグ``と終了タグ``で構成され、タグの間にはデータが入ります。属性は開始タグに追加できます。

“`xml John Doe
New York
“`
この例では、personはageという属性を持ち、nameタグとcityタグを子として持っています。
3. XMLの例

“`xml


John Doe Software Engineer

元記事を表示

初めてのバックエンドチーム開発記録

# 1.はじめに
・経緯:学習サイト”Recursion”でチーム開発を始めた。
・期限:2023年9月23日〜10月8日 の2週間
・課題:オンラインチャットサービスの作成
・書く目的:何も知らない段階で学んだものの記録し、見直すため
・言語:Python3
・チームGitHub:https://github.com/Recursion-BackendNovice-TeamA/TeamDev-OnlineChatMessenger
# 2.自己紹介
・2023年6月から、プログラミング&コンピューターサイエンスを始めた
・始めた段階のスペック: ソケット通信についてさらっとみた程度 ほぼ分からないくらい
・目指すスペック: 通信の原理説明できる程度の理解&コードも書ける
・終わった段階のスペック: 10月8日以降に記載
# 3.テーマ詳細
・期限までにステージ2まで完成させること、余裕があればステージ3を作る。
・ステージ1:クライアントがUDPを用いてサーバに接続する。この段階では、基本的なCLIを使い、サーバーに送信したメッセージが他のすべてのクライアントに中継される。
・ステー

元記事を表示

PythonのPing3パッケージのソースコードを読んで分かったことのメモ

船井総研デジタルのよもぎたです。

PythonのPing3パッケージのソースコードを調べたので、わかったこと、主に関数の使い方についてまとめておきます。

Ping3パッケージはVer.4.0.4を確認しています。Ping3パッケージのPyPIのページは[こちら](https://pypi.org/project/ping3/)、ソースコードはGitHub上の[こちらのリポジトリ](https://github.com/kyan001/ping3)になります。

# 概要
– GitHubのREADMEのGet Startedにある “ping“ と “verbose_ping“ を押さえておけばよい。
– “ping“ が1回Pingを実行する(ICMP Echo Requestを送信してICMP Echo Replyを受信する)。
– “verbose_ping“ は “ping“ をラッピングしている。結果は標準出力に出力される。
– IPv6には対応していない。

# “ping“

## 引数

### 必須のもの

– “dest_addr“

元記事を表示

花粉飛散量の分布を可視化してみた

## 動機
花粉がいつどこで最盛期を迎えているか分かったら面白いかな,と思って初めてみました.

## 完成形

1フレーム1時間に対応し,2023年3月頭から4月中旬までの様子になります.
追記:たまに見られないです.githubの方で見てください.

![sample](https://github.com/takakiba/Pollen_map_japan/blob/main/Pollen_map_japan_2023_cropped.gif?raw=true)

(クロップしてあります.実際は横にカラーバーと上に日付時刻が表示され,余白が大きいです)

https://github.com/takakiba/Pollen_map_japan.git

## コードの概要

花粉のデータはWeathernewsが提供しているデータを使用します.
APIが提供されており,取得したい期間と市町村コードを使うことで簡単に取得することができます.
しかし,一回で取得できるデータが市町村1つ,期間は1ヶ月までなので,いくら自動化しても繰り返しの取得には時間がかかります.

そこで,一度取得

元記事を表示

nvidia-dockerのベストプラクティスを目指してみる

随時更新します

nvidia-dockerのインストール

https://qiita.com/tf63/items/618f192a810c28e4d2b7

ディレクトリ構成
“`bash
.
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── docker.sh
└── docker
└── nvc
├── Dockerfile
└── requirements.txt
“`

### Dockerfile

“`Dockerfile
# syntax=docker/dockerfile:1
FROM nvcr.io/nvidia/pytorch:22.10-py3

# setup (root) ——————————————————
ENV PYTHONDONTWRITEBYTECODE 1 # .pycを作らないように
ENV PYTHONUNBUFFERED 1 # バッファの無効化

元記事を表示

(python) デザインパターンとアンチパターン(Strategy編)

# 目的
これは[Head Firstデザインパターン 第2版 ―頭とからだで覚えるデザインパターン](https://www.oreilly.co.jp/books/9784873119762/)の基本に出てくる内容について、
サンプルコードをPythonで補足した記事になります。(本書ではJavaで書かれているため)

本書との併用を前提としています。

# Strategy
Strategyパターン主に以下の3つのコンポーネントで構成されます。

:::note info
– Context:
現在のStrategyオブジェクトを保持するクラス。クライアントはこのクラスを通じてStrategyを利用します。
– Strategy:
すべての具体的なStrategyが実装するインターフェースや抽象クラス。
– ConcreteStrategy:
Strategyインターフェースを実装する各具体的なクラス。これらは具体的なアルゴリズムや方法を提供します。
:::

今回はStrategyパターンに沿わないアンチパターンコードと沿ったデザインパターンコードをそれぞれ見ていきます。

元記事を表示

Pyxelでの日本語フォント表示を簡単に! – PyxelUniversalFontの紹介

pyxelでゲーム開発やアプリ制作を楽しんでいる皆さん、テキストの表示に日本語フォントを使いたいと思ったことはありませんか?今回、そのための便利なパッケージを作成しましたので、紹介いたします!

## PyxelUniversalFontとは?

[`PyxelUniversalFont`](https://pypi.org/project/pyxel-universal-font/)は、[pyxel](https://github.com/kitao/pyxel)ライブラリのフォント機能を拡張するためのツールです。このパッケージを利用することで、簡単にpyxelでの日本語フォントの表示が可能になります。

## 主な機能

1. **追加フォントのインストール**
pyxelのデフォルトのフォントだけでなく、様々な日本語フォントを追加して使用することができます。

2. **カスタムフォントのサポート**
お気に入りのフォントを自分で追加することが可能です。

3. **高品質な文字表示**
ゲームやアプリケーションの文字を、綺麗に、そして多

元記事を表示

Pythonでファイル名を変更する方法をコードを用いて解説

Pythonでファイル名を変更するには、osモジュールまたはshutilモジュールを使用できます。以下に、これらのモジュールを使ったファイル名の変更方法をコード例を交えて説明します。

## 1. osモジュールを使用したファイル名の変更

osモジュールのrename()関数を使用してファイル名を変更する方法です。

“`python
import os

# 変更前のファイル名と変更後のファイル名を指定
old_filename = “old_file.txt”
new_filename = “new_file.txt”

# ファイル名を変更
os.rename(old_filename, new_filename)
“`
このコードでは、os.rename()関数を使用して、old_file.txtというファイル名をnew_file.txtに変更しています。

## 2. shutilモジュールを使用したファイル名の変更

shutilモジュールのmove()関数を使用してファイル名を変更する方法です。

“`python
import shutil

# 変更前のファイ

元記事を表示

デザインパターン[MVVMの章]

1. 導入
MVVMの概要
MVVM(Model-View-ViewModel)は、ユーザーインターフェースの設計パターンの一つで、特にXAMLベースのアプリケーション(WPF、Xamarin、UWPなど)で人気があります。
Model, View, ViewModelの三つのコンポーネントで構成されます。

MVVMの利点
MVVMの主な利点は、ビジネスロジックの分離、コードの再利用、テストの容易性です。

2. Model(モデル)の役割
データ管理とビジネスロジック
モデルはアプリケーションのビジネスロジックやデータを管理します。

モデルの例と実装
“` python
from dataclasses import dataclass

@dataclass
class User:
id: int
name: str
email: str

“`
3. View(ビュー)の役割
ユーザーインターフェースの概要
ビューは、ユーザーに表示されるUI部分を担当します。

ビューの例と実装
“`xml

元記事を表示

Pythonのsleep関数の使い方をコードを用いて解説

Pythonの time モジュールには、スリープ(一時停止)を実現するための sleep() 関数が提供されています。この関数は、指定した秒数だけプログラムの実行を一時停止させます。以下に、sleep() 関数の使い方をコード例を交えて説明します。

## 1. sleep() 関数の基本的な使い方

sleep() 関数を使用して、プログラムの実行を指定した秒数だけ停止させるコード例です。

“`python
import time

print(“処理を開始します。”)
time.sleep(3) # 3秒間スリープ
print(“3秒後に処理が再開されました。”)
“`
このコードでは、time.sleep(3) を使用して、プログラムの実行を3秒間停止させています。指定した秒数だけスリープし、その後にメッセージが表示されます。

## 2. 小数点以下の秒数を指定

sleep() 関数に小数点以下の秒数を指定するコード例です。

“`python
import time

print(“処理を開始します。”)
time.sleep(1.5) # 1.5秒間スリープ

元記事を表示

Pythonのset型(集合型)の使い方をコードを用いて解説

Pythonのset型は、重複要素を持たない要素の集合を表現するデータ型です。set型の使い方をコード例を交えて説明します。

## 1. 集合の作成

set型の集合を作成する方法です。

“`python
my_set = {1, 2, 3, 4, 5}
“`
このコードでは、波括弧 {} を使用して、要素が1から5までの集合を作成しています。

## 2. 空の集合の作成

空のsetを作成する方法です。

“`python
empty_set = set()
“`
このコードでは、set()コンストラクタを使用して空の集合を作成しています。

## 3. 集合の要素の追加

集合に要素を追加する方法です。

“`python
my_set = {1, 2, 3}
my_set.add(4)
“`
このコードでは、add()メソッドを使用して、集合my_setに要素4を追加しています。

## 4. 集合の要素の削除

集合から要素を削除する方法です。

“`python
my_set = {1, 2, 3, 4, 5}
my_set.remove(3)
“`

元記事を表示

Pythonのreplaceで文字列を置換する方法をコードを用いて解説

Pythonの replace() メソッドは、文字列内の指定した部分文字列を別の文字列に置換するために使用されます。以下に、replace() メソッドの使い方をコード例を交えて説明します。

## 1. 単純な置換

replace() メソッドを使用して、文字列内の指定した部分文字列を別の文字列に置換する例です。

“`python
original_text = “Pythonは素晴らしいプログラミング言語です。”
new_text = original_text.replace(“Python”, “Java”)

print(new_text)
“`
このコードでは、replace() メソッドを使用して、”Python” を “Java” に置換しています。結果は新しい文字列 new_text に格納され、コンソールに表示されます。

## 2. 置換回数の指定

replace() メソッドを使用して、置換の回数を指定する例です。

“`python
text = “PythonはPythonなので、PythonをPythonと呼びます。”
new_text =

元記事を表示

Pythonの文字列出力print()の使い方をコードを用いて解説

Pythonの print() 関数は、コンソールにテキストを出力するために使用されます。以下に、print() の基本的な使い方と応用的な使い方をコード例を交えて説明します。

## 1. 基本的な文字列の出力

print() を使用して文字列を出力する基本的な例です。

“`python
print(“こんにちは、Python!”)
“`
このコードでは、文字列 “こんにちは、Python!” がコンソールに出力されます。

## 2. 変数の値を出力

変数の値を print() を使用して出力する例です。

“`python
name = “Alice”
age = 30

print(“名前:”, name)
print(“年齢:”, age)
“`
このコードでは、変数 name と age の値が出力されます。

## 3. 書式指定

print() に書式指定文字列を使用して、変数を埋め込むことができます。

“`python
name = “Bob”
age = 25

print(“名前: {}, 年齢: {}”.format(name, age))

元記事を表示

OTHERカテゴリの最新記事