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

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

メニュー画面

[記事全体の目次へ移動](https://qiita.com/hijpa/items/31900e327315fa8e4eea)

# メニュー画面

ここをクリックしてください

“`python:
import pygame
from pygame.locals import *
import sys

def split_image(image):
“””32×128のキャラクターイメージを32×32の4枚のイメージに分割
分割したイメージを格納したリストを返す”””
imageList = []
GS = 32
for i in range(0, 128, GS):
for j in range(0, 128, GS):
surface = pygame.Surface((GS, GS))
surface.blit(image, (0, 0), (j, i, GS, GS))
surfac

元記事を表示

準同型暗号PaillierをPythonで実装と処理速度検証

# はじめに

プライバシー保護のための準同型暗号技術について、一番有名なPaillier暗号をPythonでの実装例と、暗号化キーの長さによって処理速度がどう変更するのかの検証を行いたいです。

準同型暗号に関する説明は今回割愛します。

# 実装例

## 初期設定

“`python
from phe import paillier

# キーペア作成
public_key, private_key = paillier.generate_paillier_keypair()

# コンスタント2つ作成
num1 = 15
num2 = 20
“`

## 暗号化

“`python
encrypted_num1 = public_key.encrypt(num1)
encrypted_num2 = public_key.encrypt(num2)

print(f”暗号化した num1: {encrypted_num1.ciphertext()}”)
# 140362034439846807867856938689313166233670963779…

print(

元記事を表示

python仮想環境のディレクトリ備忘録

##### 普通のインストールとvenvの仮想環境のインストールの比較

venvではvenv/bin/pythonが../lib/python3.9/pythonのシンボリックリンクになっている
~~~
`/ # ルートディレクトリ
├── usr/
│ └── local/
│ └── lib/
│ └── python3.8/ # システム全体にインストールされたPython 3.8
│ ├── bin/
│ └── lib/
├── home/
│ └── user/
│ └── myproject/
│ └── venv/ # venvで作成した仮想環境
│ ├── bin/
│ │ ├── activate
│ │ ├── python -> ../lib/python3.9/python
│ │ └── …

元記事を表示

Tkinter と Pygame の構文比較

### ウィンドウを作成する
– **tkinter**
“` python
screen = tkinter.Tk()
“`
– **pygame**
“` python
pygame.init()
“`

### タイトル
– **tkinter**
“` python
root.title(“~”)
“`
– **pygame**
“` python
pygame.display.set_caption(“~”)
“`

### ウィンドウサイズ
– **tkinter**
“` python
root.geometry(f”{800}x{600}”)
“`
– **pygame**
“` python
screen = pygame.display.set_mode((800, 600))
“`

### フォント
– **tkinter**
“` python
fnt = (“Times New Roman”, 16)
“`

元記事を表示

pythonでwatson discoveryのプロジェクトを削除

“`python
# %%
from ibm_watson import DiscoveryV2
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

# %%
apikey=’APIKEY’
version=’VERSION’
service_url=’SERVICE_URL’
authenticator = IAMAuthenticator(apikey=apikey)
discovery = DiscoveryV2(version=version, authenticator=authenticator)
discovery.set_service_url(service_url=service_url)

# %%
name = ‘NAME’
type = ‘TYPE’
response = discovery.create_project(name=name, type=type).get_result()
print(response)

# %%
response = discovery.list

元記事を表示

格子を用いた素因数分解法をdll及びsoファイルにしてみた

# 格子を用いた素因数分解法について

以下である程度詳しく書いていますので,気になる方はこちらを見てみてください.

https://qiita.com/satoshin_astonish/items/c25c24376bc73fdb3eb9

# 当該DLL及びSOファイルについて

GitHubにて配布しています.

https://github.com/satoshin-des/lattice_factorization

# 何が入っているか

同梱されているC++ソースで言うところの“lattice_factorization“関数,入力された合成数を格子を利用した素因数分解法で素因数分解する関数が利用可能になっています.

## 使い方

第一引数にビットサイズで入力するか否か,第二引数に素因数分解したい合成数もしくはそのビットサイズで,第三引数にアルゴリズムの進捗情報を出力するかを入力します.
言葉だけでは分からないと思うので,Pythonをもちいた例を見てみましょう.

例えば,ランダムに生成した$50$ビットのRSA型合成数を素因数分解したいときは以下の様にしま

元記事を表示

WSLにPythonをインストールする

個人的備忘録

【目的】
WSLにPythonをバージョンを指定してインストールし、開発環境としたい。
Pythonのバージョン管理はpyenvで行いたい

【環境】
Windows11
WSL2
Ubuntu 24.04 LTS

### 目次
[1. WSLの構築](###-1.-WSLの構築)
[2. Pythonのインストール](###-2.-Pythonのインストール)
[3. 初期設定](###-3.-初期設定を行う)

### 1. WSLの構築
以下の記事に詳細を記載。

https://qiita.com/tuna_/items/9a0f6529a00d1338c563

### 2. Pythonのインストール
WSLにはデフォルトでPythonがインストールされているが、特定のバージョンのPythonを使用したいため、以下の手順で処理を行う
1. pyenvをインストール
2. 環境設定
3. pythonのインストール
3. デフォルト設定

pyenvをインストールための必要な依存関係をインストールした後、
pyenvをインストールする。
“`termi

元記事を表示

Python Dataclass解説:基礎から実践まで

# 初めに

Python3.7で導入されたdataclassデコレータは、データクラスを作成するための方法を提供します。この記事では、dataclassの核となる機能と実践的な使用例を詳しく解説し、プロジェクトでの効果的な活用方法を紹介します。

# 使用上のおすすめ事項
1. データの保存が主な目的のクラスを作成する場合は、dataclassの使用を検討する
1. 変更不可能なデータには`frozen=True`を使用する
1. 初期化後の検証が必要な場合は`__post_init__`を使用する

# Dataclassとは

`__init__()`, `__repr()__`, `__eq()__`などの特殊メソッドを自動的にクラスに追加するpythonのデコレータです。従来の方法と比較して、理解を深めましょう:

“`python
# 従来のクラス定義方法
class TraditionalStudent:
def __init__(self, name: str, age: int, grade: int):
self.name = name

元記事を表示

Pythonの並列処理でLLM APIを効率的に利用する方法

Pythonの並列処理を使ったコードの例として、Azure OpenAIとLlamaIndexを用いて複数のテキストを並行して要約する方法について書いていきます。LLM APIを逐次実行すると時間がかかると思い、速く回せる方法を探していたら、ついでにいろいろ勉強になったので備忘録的に置いておきます。

# 1. APIクライアントの設定
Azure OpenAIのAPIキーやエンドポイント情報を使って、llmという変数でクライアントをセットアップしています。

“`python
llm = AzureOpenAI(
model=”gpt-4o-mini”,
max_tokens=4096,
api_key=os.environ[“AZURE_OPENAI_API_KEY”],
azure_endpoint=os.environ[“AZURE_OPENAI_ENDPOINT”],
api_version=”2024-08-01-preview”,
deployment_name=”gpt-4o-mini”
)
“`

# 2. 要約する

元記事を表示

BigQueryのRemote FunctionsでAPIから直接データを取得する

# やりたいこと
タイトルの通り。

# 動機
とあるAPIから取得できるデータ(ex. 実行ログとか)をBigQueryで分析できるようにしたい。
いままでは専用のジョブを作ったりしてたけど、そもそもBQで直接取れるのでは?と思ったのと、軽く検索した感じ同じようなことやってる人が見つからなかったのでやってみた。

# BigQuery Remote Functionsとは
https://cloud.google.com/bigquery/docs/remote-functions?hl=ja
> BigQuery リモート関数を使用すると、SQL と JavaScript 以外の言語や、BigQuery ユーザー定義関数で許可されていないライブラリやサービスを使用して関数を実装できます。

ドキュメントのサンプルでは「引数の数値を足し算したものを返す」関数の例がある。
もっと色々できるはずだと思ったので、思いついたのが今回のもの。

# 必要なもの
– BigQuery
– Cloud Functions(Cloud Run Functions)
– Cloud Runでも

元記事を表示

大学院生におすすめの研究で役立つ「Pandas」活用法と基本コード

# 大学院生におすすめの研究で役立つ「Pandas」活用法と基本コード

Pandasは、Pythonでデータを扱うための強力なライブラリで、データの操作や分析、計算処理に非常に役立ちます。大学院生が研究やデータ分析において、Excelの代わりにPandasを使用することで、効率的かつ高度なデータ処理が可能になります。特に、ChatGPTなどのツールと組み合わせると、Pandasのコードも簡単に習得できます。本記事では、Pandasを用いてExcelに匹敵する、あるいはそれ以上のデータ処理を行う方法について解説し、実用的なPandasコードを一覧で紹介します。

## 目次
1. Pandasの基本と活用するメリット
2. Pandasを使用したデータ処理の基本コード
3. 研究に役立つPandasコード一覧
4. PandasとExcelの違いと使い分け
5. まとめ

## 1. Pandasの基本と活用するメリット

### Pandasとは
Pandasは、Pythonのライブラリのひとつで、特にデータの読み込み・整理・分析に適しています。Excelのように

元記事を表示

大学院生のための効率的な研究手法:Pandasを活用したデータ分析

# 大学院生のための効率的な研究手法:Pandasを活用したデータ分析

## はじめに

大学院での研究においてデータ分析は非常に重要です。しかし、従来のExcelを用いたデータ分析には手作業が多く、データ量が増えると限界が生じます。そこで、Pythonのデータ分析ライブラリ「Pandas」によるデータ処理を取り入れることで、研究の効率を飛躍的に高めることができます。Pandasを使えば大量データも迅速に扱えるだけでなく、繰り返し分析やデータの再現も可能です。

## Pandasとは

Pandasは、Pythonを用いたデータ分析に不可欠なライブラリです。表形式でデータを操作できるため、Excelのような操作感でデータを分析できます。加えて、Pythonの豊富な機械学習ライブラリと連携できるため、研究やデータ分析に広く利用されています。

## Pandasを使うメリット

1. **計算の自動化**:一度書いたコードを繰り返し実行でき、複数回の計算処理も自動化されます。
2. **大量データの処理**:Excelでは負荷がかかる数万行のデータもスムーズに扱え

元記事を表示

Pandasを使ったChatGPTトレーニングデータの整理手法

# Pandasを使ったChatGPTトレーニングデータの整理手法

機械学習モデルであるChatGPTをトレーニングするには、大量のテキストデータが必要です。このデータは整理・クリーニングされ、最適な形式に変換される必要があります。Pythonのデータ処理ライブラリであるPandasを使用することで、データの整理が効率的に進められます。以下に、ChatGPTのトレーニングデータをPandasを使って整理するための具体的なステップを解説します。

## 目次

1. データの読み込み
2. データの概要確認
3. 欠損値の処理
4. 重複データの削除
5. データ型の変換
6. テキストデータのクリーニング
7. カテゴリカルデータのエンコーディング
8. データの分割(訓練データとテストデータ)
9. データの保存

## 1. データの読み込み

まず、トレーニングデータをPandasを使って読み込みます。以下は、CSVおよびJSONファイル形式のデータを読み込む方法です。

“`python
import pandas as pd

# CSVファイルを読み

元記事を表示

Pandasを使ったChatGPTトレーニングデータの可視化方法

# Pandasを使ったChatGPTトレーニングデータの可視化方法

機械学習モデルであるChatGPTをトレーニングする際には、大量のテキストデータを分析し、データの特徴や分布を視覚的に理解することが重要です。PandasとMatplotlib、Seabornなどのライブラリを活用することで、データの分布や相関、傾向を簡単に可視化できます。本記事では、具体的な可視化手法を順を追って解説します。

## 目次

1. データの読み込みと準備
2. 基本的な統計情報の可視化
3. カテゴリカルデータの分布を可視化
4. 数値データの分布を可視化
5. 相関関係の可視化
6. 時系列データの可視化
7. テキストデータの可視化(単語頻度など)
8. 散布図(2つの数値変数の関係)
9. ボックスプロット(カテゴリ別の数値分布)

## 1. データの読み込みと準備

まず、Pandasを使用してChatGPTのトレーニングデータを読み込みます。データ形式がCSVやJSONの場合、それぞれに適した方法で読み込みます。

“`python
import pandas a

元記事を表示

散布図でのデータ可視化におけるカラーマップの選び方と適用方法

# 散布図でのデータ可視化におけるカラーマップの選び方と適用方法

データを散布図で視覚化する際、適切なカラーマップ(カラースケール)を選ぶことは、データの理解を深めるために非常に重要です。カラーマップはデータの特性や可視化の目的に応じて選ぶ必要があり、視覚的な明瞭さや色覚異常に配慮した選択が求められます。ここでは、カラーマップ選択のベストプラクティスとPythonのPandasおよびMatplotlibを用いたカラーマップ適用方法を解説します。

## カラーマップ選びのベストプラクティス

### 1. **視認性**
– 視覚的にデータが見やすく、情報を適切に伝えるカラーマップを選びましょう。特に色覚異常の方にも配慮した*viridis*や*cividis*といったカラーマップが推奨されます。

### 2. **データの種類**
– **連続値**:データが連続的に変化する場合、*viridis*や*plasma*のような滑らかなグラデーションのカラーマップが適しています。
– **カテゴリデータ**:異なるカテゴリごとに色を分ける場合、*tab10

元記事を表示

HyperSpyとscikit-imageの画像データの橋渡し

意外とまとまっているチートページがなかったので、忘備録の為作成。

https://hyperspy.org

# JPEG画像をHyperSpy経由でscikit-imageへ

例として、8bitグレースケールのjpgを表示する。

復習として、モジュールインポート

“`python
import hyperspy.api as hs

import numpy as np
from skimage.io import imshow, show
import matplotlib.pyplot as plt
“`

そして、

“`python
s = hs.load(“hogehoge.jpg”)
imshow(s.data,cmap=”gray”)
show()
“`
でよい。

ここで、`imshow()`の`cmap=”gray”`は、カラースケールをグレースケールに、という意味。

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

元記事を表示

ChatGPTのトレーニングデータを散布図で可視化する際のベストプラクティスと注意点

# ChatGPTのトレーニングデータを散布図で可視化する際のベストプラクティスと注意点

ChatGPTのトレーニングデータを散布図で可視化することで、データの傾向や関係性を直感的に把握できます。しかし、効果的な可視化には適切な前処理や設定が必要です。以下では、データの可視化におけるベストプラクティスと注意点を、目次と参考文献と共に解説します。

## 目次

1. データの前処理
2. 適切な変数の選択
3. 可視化の設定
4. カラーマップの選択
5. データポイントの調整
6. 追加情報の表示
7. インタラクティブ性の考慮
8. コンテキストの提供
9. 再現性の確保
10. パフォーマンスの最適化
11. 注意点
12. 参考文献

## 1. データの前処理

適切な前処理は、可視化結果の信頼性を高めるための重要なステップです。

– **欠損値や異常値の処理**: 欠損値は`dropna()`や`fillna()`で補完・削除し、異常値は分析の妨げになる場合があるため適切に対応します 。

– **データ型の変換**: 数値データは適切なデータ型

元記事を表示

Pandasで作成したグラフのレイアウトを最適化する方法

# Pandasで作成したグラフのレイアウトを最適化する方法

Pandasで作成したグラフを見やすくするためには、適切なレイアウト調整が必要です。デフォルトの設定でもグラフは作成可能ですが、レイアウトを最適化することで、視認性が向上し、伝えたい情報をより効果的に表現できます。ここでは、Pandasのグラフのレイアウトを最適化するための具体的な方法を紹介します。

## 目次

1. グラフのサイズを設定する
2. タイトルと軸ラベルの追加
3. 凡例の位置を調整
4. グリッド線の追加
5. 軸の範囲を設定する
6. サブプロットを使用して複数のグラフを配置
7. スタイルの設定
8. 余白の調整
9. カラーマップの適用
10. フォントサイズの調整
11. 参考文献

## 1. グラフのサイズを設定する

グラフが小さすぎると視認性が低下するため、`figsize`を使って適切なサイズを設定します。Pandasでの標準サイズは小さいため、必要に応じて拡大することが推奨されます。

“`python
df.plot(figsize=(10, 6))
“`

元記事を表示

Pandasで作成したグラフの凡例(LEGEND)を最適化する方法

# Pandasで作成したグラフの凡例(LEGEND)を最適化する方法

Pandasで作成したグラフの凡例(LEGEND)は、見やすさや情報の伝達において重要な役割を果たします。凡例の位置やサイズ、透明度などを調整することで、視認性を高め、より効果的に情報を伝えることができます。以下に、Pandasのグラフで凡例を最適化する方法を具体的なコードと共に解説します。

## 目次

1. 凡例の位置の調整
2. 凡例をグラフ外に配置
3. 凡例タイトルの追加
4. 凡例のフォントサイズの調整
5. 凡例の列数を指定
6. 凡例フレームの調整
7. 凡例内のマーカーのカスタマイズ
8. 凡例の透明度の設定
9. 凡例の順序変更
10. 特定の項目のみ表示
11. 参考文献

## 1. 凡例の位置の調整

凡例の位置を指定して、グラフの中で最も見やすい場所に配置します。`loc=’best’`で最適な位置に自動的に配置され、また、手動で位置を指定することも可能です。

“`python
import matplotlib.pyplot as plt

# デフォルト位

元記事を表示

Pythonで計算ミスを検出するためのライブラリとツール

# Pythonで計算ミスを検出するためのライブラリとツール

Pythonを用いて計算ミスを検出・防止するには、テストフレームワークや型チェックツール、デバッグツールなどを活用することが非常に効果的です。ここでは、Pythonで計算ミスを効率的に検出するための代表的なツールやライブラリについて解説します。これらを組み合わせて使用することで、計算の正確性と信頼性を高めることが可能です。

## 目次

1. [unittest – 標準の単体テストライブラリ](#unittest—標準の単体テストライブラリ)
2. [pytest – より高度なテストフレームワーク](#pytest—より高度なテストフレームワーク)
3. [numpy.testing – 数値計算用のテスト関数](#numpytesting—数値計算用のテスト関数)
4. [hypothesis – プロパティベースのテスト](#hypothesis—プロパティベースのテスト)
5. [pylint – コード品質チェックツール](#pylint—コード品質チェックツール)
6. [my

元記事を表示

OTHERカテゴリの最新記事