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

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

pandas2.2: `Series.map()`の結果はnullableなdtype`Int64`や`String`にならない

# 環境
* Python 3.12.1
* panda 2.2.2

# はじめに
[pandas.Sereis.map](https://pandas.pydata.org/docs/reference/api/pandas.Series.map.html)を使ったら、`pandas.NA`が`numpy.nan`に変換されるときがありました。
実際に試して、どう変換されるかを確認しました。

# 結果
## `pd.NA`を含む場合

### dtypeが`Int64`

“`
In [51]: s2 = pd.Series([1, pd.NA],dtype=”Int64″)

In [52]: s2
Out[52]:
0 1
1
dtype: Int64

In [53]: s2.map(lambda e: e)
Out[53]:
0 1.0
1 NaN
dtype: float64
“`

`pd.NA`が`np.nan`に変わりました。また`np.nan`に変わったことにより`dtype`が`Int64`から`float64`

元記事を表示

bokeh: `legend_label`引数には文字列以外を指定できない

# 環境
* Python 3.12.1
* bokeh 3.4.0
* pandas 2.2.0

# 背景
`scatter()`メソッドの`legend_field`引数を利用して、凡例を設定しています。

“`python:sample0.py
from bokeh.io import output_file, save
import pandas
from bokeh.plotting import figure, ColumnDataSource

from bokeh.palettes import Category10

colors = Category10[3]
df = pandas.DataFrame(
{“x”: [1, 2, 3, 4], “y”: [1, 4, 9, 16], “type”: [“X”, “Y”, “Y”, “Z”]}
)
print(f”{df[“type”]=}”)
fig = figure()

for index, type in enumerate(df[“type”].unique()):
df2 = df[d

元記事を表示

オフライン環境にローカルLLMを実行する環境を作ってみた

# はじめに
以前に以下のような紹介をしました。

https://qiita.com/sugimochi_1019/items/2f8e426faa4e2fc3ba3c

今回はこれの続きで、ローカルLLMを使える環境をオフラインで作成したので手順を共有できればと思います。

# LLMの選定とダウンロード
まず、使用するモデルを選定し、オンライン環境でダウンロードします。ここでは、日本語に対応したjapanese-stablelm-3b-4e1t-instruct-ggufを例に進めます。

https://huggingface.co/mmnga/japanese-stablelm-3b-4e1t-instruct-gguf/tree/main

ダウンロードしたモデルデータは、オフライン環境へ移行するためにUSBなどの移動可能なメディアに保存します。

# 必要なライブラリとツールの準備
LLMの実行に必要なライブラリ等を`pip download`を用いて行います。

“`bash
pip download -d ./packages -r requirements.txt

元記事を表示

【Azure】(Syncing triggers…)で関数アプリが同期できない

# 何が起こったか
1. `terraform import`で抽出した`AzureFunctions`の情報を抽出。
1. 1で抽出した情報を元に、別リソースグループにて`AzureFunctions`を作成。
1. `VSCode`を使用してソースコードデプロイ
1. デプロイには成功するのだが、同期に失敗する。

## デプロイには成功するのだが、同期に失敗する
上記の「4」について、もう少し詳細状況を残します。
`VSCode`を使用してソースコードをデプロイし、待つこと数分経ちますと、ログに以下のような出力がされます。
“`bash
Deployment successful. deployer = ms-azuretools-vscode deploymentPath = Functions App ZipDeploy. Extract zip. Remote build.
Syncing triggers…
Syncing triggers (Attempt 2/6)…
Syncing triggers (Attempt 3/6)…
Syncing trig

元記事を表示

Pythonで「ディレクトリの作成と削除」の動作を確認してみた

# 概要

Pythonで「ディレクトリの作成と削除」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/file/index8.html

# 実装

以下のファイルを作成しました。
“`sample1.py
import os
path = ‘./test/movie’
os.mkdir(path)
“`

“`sample2.py
import os
path = ‘./test/code/python/2019’
os.makedirs(path, exist_ok=True)
“`

“`sample3.py
import os
path = ‘./test/movie’
os.rmdir(path)
“`

以下のコマンドを実行しました。
“`
$ mkdir test
$ python3 sample1.py
$ ls test
movie
$ python3 sample2.py
$ ls test
code movie
$ python3 sample3.py
$ ls t

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その71 GUI による AI との対戦

# 目次と前回の記事

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

https://qiita.com/ysgeso/items/c91d5373753253d98f23

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

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

https://github.com/ysgeso/marubatsu/blob/master/071/marubatsu.py

https://github.com/ysgeso/marubatsu/blob/master/071/ai.py

## ルールベースの AI の一覧

ルールベースの AI の一覧については、下記の記事を参照して下さい。

https://qiita.com/ysgeso/items/10d1d01192c014173e4b

# GUI での AI との対戦

前回の記事では、__人間どうし__ が __GUI__ で __〇×ゲーム__ を __遊べる__ ようにしました。

今回の記事では __GUI__

元記事を表示

pyenvとvenvを使ったPython仮想環境の構築(Windows11 vs Apple Silicon Mac)

Pythonの仮想環境の構築は素の状態からすることはあまりなく、すべての工程になると忘れがちです。また、OSによってもかなり異なる部分がありました。そこで、pyenvとvenvを使った仮想環境の構築方法をOS間で比較するような形でまとめてみました。

## Python本体のインストール

### Windows11

Windows11の場合は素の状態ではPythonがインストールされていないので、インストーラーを公式からダウンロードしてインストールします。以下のリンク先はPython 3.11.0のインストーラーのダウンロードページです。

https://www.python.org/downloads/release/python-3110/

パスを通す設定でインストールします。

![インストーラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773995/12c1b8b1-168c-7cb7-9e08-01e91dba7027.png)

### Mac

Macの場合はデフォルトでPy

元記事を表示

Pythonの2つの長いリストを比較したとき、共通した要素が片方のリストに何個含まれるか求める処理を高速化したい

# 概要
Pythonにて二つのリスト同士を比較する際、リストの共通要素だけでなく、どちらのリストに何個共通要素が含まれているかを知りたい時があります。今回は、`collections`モジュールを使って、リストが長い場合に比較的高速処理できる方法をまとめておきます。

# 困りごとの具体例
### 問題が無い場合の事例
リストが短い場合は実用上の問題は全くありません。
“`python:
list_a = [1, 2, 3, 3, 4, 5]
list_b = [3, 4, 4, 6]
“`
という二つのリストがあるとすると、両者に共通する要素は、
“`python:
list_com = list(set(list_a)&set(list_b))
print(list_com)
“`
を実行することで、
“`python:
[3, 4]
“`
という結果が即座に得られます。`set`でリストを集合にし、`&`で共通要素を抽出し、最後にリスト化する、というポピュラーな方法です。ただし、`[3, 4]`の2個の要素は、あくまで共通要素です。今回は、この共通要素が`list_

元記事を表示

SQLModelのシンプルなサンプルコードの紹介

## 概要

[SQLModel](https://sqlmodel.tiangolo.com/)のWebAPIの**シンプルなサンプルコード**を紹介します。

コード一式は、下記にあります。すべてを確認するためには、[Download ZIP](https://github.com/SaitoTsutomu/sqlmodel-book-sample/archive/refs/heads/master.zip)からZIPをダウンロードしてください。

https://github.com/SaitoTsutomu/sqlmodel-book-sample

最初に、テーブルと機能を説明し、続いて、環境構築や実行方法を説明します。
最後に、ファイル構成と、抜粋したコードや補足の説明をします。

### 参考

– FastAPI版のサンプルコードの記事もあります。

https://qiita.com/SaitoTsutomu/items/6fd5cd835a4b904a5a3e

## テーブルとカラム

著者テーブルと書籍テーブルを操作します。データベースは、SQLiteを使います

元記事を表示

Databricks にて Excel 設計書からプログラム変数を生成する方法

## 概要

この記事は、Databricksを使用してExcel形式の設計書からプログラムの変数を生成する方法についての検証結果を共有します。Excelの設計書が表形式で記述されていることを前提に、3つの異なる類型からデータを取得する方法を検証しています。これらの類型は、行方向に情報を保持する表、列方向に多数のプログラム情報を保持する表、および列方向に単一のプログラム情報を保持する表です。

また、プログラムのセクションでは、Excelファイルの配置、ライブラリのインストール、openpyxlの動作確認、クラスの定義、Excelの表から情報の取得、辞書型変数とリスト型変数を文字型に変換する方法について説明しています。これらの手順は、Excelの設計書からプログラムの変数を効率的に生成するための基本的なフレームワークを提供します。“

## Excel の類型と情報の取得方針

### 類型について

Excel の設計書が表で記述されていることを前提として、次の類型からデータを取

元記事を表示

フォントファイルをサブセット化して軽量化したい

お久しぶりです。
アドベントカレンダー以外での投稿です。

とある案件で時間を表示するWebアプリを作っていたのですが、その時に独自のフォントを使うことになり、
これがなかなかのデータサイズだったのでフォントのサブセット化を行いました。

その時に調べたことをまとめます。

## 作っていたアプリ

数字で時間を表示するアプリです。
ここに独自のフォントを当てます。

| イメージ図 |
| — |
| ![スクリーンショット 2024-04-11 16.21.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/96450/d8d895a5-d8cc-200c-da31-c7894da21331.png) |

使用するフォントは以下の通りです。
`0123456789:`

## サブセット化前のサイズ

とりあえずサブセット化しない状態で、使ってみます。
※ 案件で使っているフォントは見せられないので、 [たぬき油性マジック](https://tanukifont.com/tanuki-perm

元記事を表示

スクレイピング・ハッキング・ラボ つまりポイントメモ

スクレイピング・ハッキング・ラボ 躓きポイントメモ

この記事では、私が2021年頃に買った[スクレイピング・ハッキング・ラボ](https://amzn.asia/d/cTOzFv1) を、今更やっている私が、情報が古くなっているがゆえに上手くいかなかったことに対するメモです

もしかしたら私と同じように躓いている人がいるんじゃないかなと思って、軽くメモを残しておく

本を持っている人向けなので、ここを読むだけでは全く何を言っているのか分からないと思うけど、その分本を持っている人だとちゃんと分かるように意識して書いているつもり

2022年4月に内容を改定しているらしいけど、私が持っているのは初版のバージョンなので、最新のものだとこの辺りはクリアされている可能性はあり

タイトルに書いてる数字(7.2 など)は、私の本のチャプター番号(=詰まった箇所のチャプターの番号)と一致しているので、検索などに利用してください

# 私の動作環境
OS: windows 10 Pro(英語版インストール)
OS cersion: 22H2
processor: Intel(R) Core(TM)

元記事を表示

poetry + pyenv

## 2024/04/11現在のpoetry install

https://python-poetry.org/docs/#installing-with-the-official-installer
“`shell
curl -sSL https://install.python-poetry.org | python3 –
“`
python じゃなくて python3 なのはもう受け入れる。

パスは自動で設定されなかったみたいなので、.bash_profile に追加
`export PATH=”/home/{username}/.local/bin:$PATH”`
“`shell
$ which poetry
/home/{username}/.local/bin/poetry
“`

## poetry で特定のフォルダは以下に.venvを作って参照したい
“`shell
$ poetry config –list
(略)
virtualenvs.in-project = null
(略)
“`
こいつをtrueにしてから poetry install す

元記事を表示

MMCVのインストール方法とViTPoseの動かし方

# 概要
[ViTPose](https://github.com/ViTAE-Transformer/ViTPose/)というモデルを動かそうとした際に[MMCV](https://github.com/open-mmlab/mmcv)のインストールに苦労したのでインストール方法をまとめました.

ViTPoseとは,姿勢推定モデルであり,画像認識タスクで優れた性能を示す[vision transformer](https://arxiv.org/abs/2010.11929)を,姿勢推定に用いたモデル.
![68747470733a2f2f6d656469612e67697068792e636f6d2f6d656469612f5a657758775a756978594b53326c5a6d4e4c2f67697068792e676966.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3758385/5c6bf0fb-dc7c-a154-b837-2e7dda89225d.gif)
– Yufei X

元記事を表示

ABC348(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# ABC348(Atcoder Beginner Contest)のA~D(A,B,C,D)問題をPythonで解説(復習)

# A問題
– FizzBuzzと同じノリでやる.
– `ooxooxooxooxo…`をまとめて出力するため,`ans`変数に値を格納していく.
– `for`で回すときは,繰り返し変数`i`は,`0`始まりなことに注意し,`i+1`で評価する.
“`A.py
“””
<方針>
– FizzBuzzと同じノリでやる.
– `ooxooxooxooxo…`をまとめて出力するため,`ans`変数に値を格納していく.
– `for`で回すときは,繰り返し変数`i`は,`0`始まりなことに注意し,`i+1`で評価する.
“””
# 標準入力から値を受け取る.
N = int(input())

# 答えを格納するListの変数
ans = []

# ペナルティキックを一つずつ見る
for i in range(N):

# 3の倍数のとき,
if( (i+1)%3 == 0 ):
# 答えに”x”を追加する.
ans.app

元記事を表示

PythonでPDF文書にヘッダーとフッターを挿入する方法

PDFへのヘッダーとフッターの追加は、PDFドキュメントの視覚的な魅力、ブランディング、整理を向上させるための重要な機能となっています。
ヘッダーとフッターを組み込むことにより、ユーザーはドキュメントのタイトル、ページ番号、ロゴ、日付、著作権表示、機密性の免責事項など、重要な文脈情報をカスタマイズすることができます。これにより、プロフェッショナルな外観が確立されるだけでなく、ドキュメントのナビゲーションが改善され、法的要件の遵守が保証されます。
本記事では、**Pythonを使用してPDFファイルにヘッダーとフッターをシームレスに追加**するプロセスについて詳しく説明します。

– **[Pythonで既存のPDF文書にヘッダーを追加する](#pythonで既存のpdf文書にヘッダーを追加する)**
– **[Pythonで既存のPDF文書にフッターを追加する](#pythonで既存のpdf文書にフッターを追加する)**

この記事で使用する方法は、[Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-P

元記事を表示

DjangoRestFrameworkを用いたWebAPI構築基礎(heroku DBサーバ使用とデプロイ)

## 概要
この記事はDjangoRestFramework(以下DRFと記す)を用いたWebAPIを作成する方法を説明する.DRFはPythonのWebフレームワークであるDjangoの拡張機能で,RESTful Web APIの開発を容易にするために設計されている.

>**API(Application Programming Interface)**
>異なるソフトウェアコンポーネント間でデータを交換し,機能を相互利用するための規約やルール,ツールの集合

>**Restful Web API**
>Webアプリケーションやサービス間で情報をやり取りするためのインターフェースであり,REST原則に基づいて設計されている.
>>**REST(Representational State Transfer)**
>>インターネット上での分散システム設計(クライアントサーバシステム)のためのアーキテクチャスタイルを定義し,シンプルさと拡張性を提供します。RESTful APIはHTTPプロトコルを使用してデータやサービスにアクセスし,操作する.

**主な操作メソッド**
RESTf

元記事を表示

Databricks にて pytest によるテスト対象のディレクトリにノートブックが含まれる場合のエラーについて

## 概要

Databricks にて pytest 実行時にテスト対象のディレクトリにノートブックが含まれている場合には、次のようなエラーが発生するようです。そのエラーに対しては、ノートブックを削除して、python ファイルを新規で作成してテストコードを保持させることでエラーが解消されます。エラーの再現方法と対応方法を共有します。

> ============================= test session starts ==============================
> platform linux — Python 3.10.12, pytest-8.1.1, pluggy-1.4.0 — /local_disk0/.ephemeral_nfs/envs/pythonEnv-4ec1a9d6-6be6-4f9a-9eba-0f2b70be94c9/bin/python
> cachedir: .pytest_cache
> rootdir: /Workspace/Repos/Shared/databricks_tecks_fro_qiita_2

元記事を表示

Can’t load plugin: sqlalchemy.dialects:duckdb

“`
python -m pip install duckdb_engine
“`

元記事を表示

仮想環境を使う

下記内容の要約、一部環境でのエラー対応を追加
参考:https://camp.trainocate.co.jp/magazine/venv-python/

1. プロジェクトディレクトリの作成
“`mkdir venv-test“`

2. 作成したプロジェクトディレクトリに移動
“`cd venv-test“`

3. Pythonのバージョン確認
“`python -V“`

4. 仮想環境作成
“`python -m venv [env]“`
[]内が環境名。「env」や「venv」などが名称としては一般的
→envフォルダが作成される

5. 仮想環境の有効化
“`env\Scripts\Activate.ps1“`

:::note alert
エラーが出る場合
“`Set-ExecutionPolicy RemoteSigned -Scope Process“`
PowerShellの設定を変更
(今開いているPowerShellウィンドウのみ実

元記事を表示

OTHERカテゴリの最新記事