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

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

BlueskyにAPIを使ってPythonから投稿してみる

Bblueskyが招待なしで使えるようになったとのことでドキュメント読み始めてみました。
まずはAPIを使ってPythonから投稿してみます。

# 環境
OS macOS 14.2.1
Python 3.12.1

Pythonで開発する環境は整い済み、Blueskyもアカウント作成済みとして始めます。

# atprotoのインストール
まずはBlueskyが使っているAT Protoclを扱うためのライブラリをインストールします。

“`
% pip install atproto
“`

“`
Collecting atproto
Downloading atproto-0.0.40-py3-none-any.whl.metadata (14 kB)
Collecting click<9,>=8.1.3 (from atproto)
Downloading click-8.1.7-py3-none-any.whl.metadata (3.0 kB)
Collecting cryptography<42,>=41.0.7 (from atproto)
Downl

元記事を表示

STLで季節調整をやってみた話。

# 目次
[1. そもそも季節調整ってなんぞ?](#1-そもそも季節調整ってなんぞ?)
[2. 準備](#2-準備)
[3. とりあえずやってみる](#3-とりあえずやってみる)
[4. 色々な時系列でやってみる](#4-色々な時系列でやってみる)
[5. まとめ](#5-まとめ)
[6. 参考文献](#6-参考文献)

# 1. そもそも季節調整ってなんぞ?
ある一定の時間間隔で得られたデータの系列(例えば株価や気温の時間変化)のことを、時系列データと呼びます。一部の時系列データ(例えばアイスの売り上げとか)には、1年周期で繰り返す変動(季節変動)が含まれており、時系列データを解釈する際に、この季節変動成分を取り除く作業(=季節調整)が重要になります。([経済産業省さんのページ](https://www.meti.go.jp/statistics/toppage/report/minikaisetsu/hitokoto_kako/20211126hitokoto.html)に丁寧な説明があります。)

今回は局所回帰を用いて季節調整を行うSTL (Seasonal-Trend dec

元記事を表示

日本語Bertでセマンティック検索

前回:https://qiita.com/momae41/items/20365326777d4a914ff3
この記事ではPineconeを用いて日本語でセマンティック検索を実践した例を紹介します。

# 目次
使ったモデル
実装内容
課題
感想
参考

# 使ったモデル
今回は参考記事をもとに以下のモデルを使用しました。
– SentenceTransformer
– [paraphrase-multilingual-mpnet-base-v2](https://huggingface.co/sentence-transformers/paraphrase-multilingual-mpnet-base-v2)
– tokenizer
– [cl-tohoku/bert-base-japanese](https://huggingface.co/cl-tohoku/bert-base-japanese)

# 実装内容
### セットアップ
まずはなんでもいいのでセンテンスを用意してください。今回は自作しました。
“`py
all_sentences = [

元記事を表示

Pygameでキャラクターを動かしてみたメモ

## はじめ
普段勉強しているPythonでもゲームが作れるらしいのでやってみた。
使ったのは、ゲーム開発ライブラリ「Pygame」。
RPGでよく見る、キャラクターがテクテク歩くのを再現してみた。
![pygame_man3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3492627/19d9dc80-0453-ab93-b50a-3fcd200178ac.gif)
# キャラクターを表示させる

~~~python
import sys
import pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((600, 400))

white = (255,255,255)

def main():

px=100
py=100

man = pygame.image.load(“man.png”)
man = pygame.transfo

元記事を表示

Excelファイルの各シートをまとめてCSV変換するPythonコード

# 概要
Excelファイルを一括txt化するPythonを作成したので、備忘録としておいておきます。
これはWSL2で使用したものです。

“`
path: 下のフォルダを格納するフォルダまでのパス
folder_source: excelファイル格納フォルダ名
folder_result: 出力先フォルダ名
“`

“`excelToCsv.py
import os
from natsort import natsorted
import pandas as pd
import warnings

#ディレクトリ名
folder_source = “source”
folder_result = “result”
#パス
path = “/home/user/code/python/”

def main():
folder_source_path = os.path.join(path, folder_source)
folder_result_path = os.path.join(path, folder_result)

#excelファイルリ

元記事を表示

穴あき問題とビンゴ確率に関する計算機シミュレーション

最近,YouTubeチャンネル「予備校のノリで学ぶ「大学の数学・物理」」様において
“ビンゴせずに穴は何個まで開けられるか”
という話題で数学的な解析も含めて解説されていました.

元動画は以下のものです.

本記事では計算機シミュレーションを通して数学に加えてプログラミングの理解を深めていきます.
目標としては,Pythonを用いて抽選回数とビンゴの確率分布を得ることを目標とします.
それでは実装を行っていきます.
# パッケージインポート
数値計算パッケージとしてnumpy,グラフ描写のためにmatplotlibをインポートします.
“`Python
import numpy as np
import matplotlib.pyplot as plt
“`

# ビンゴの判定関数
ビンゴカードを$5 \times 5$の配列を使って表現し,穴が開いている部分は$-1$とします.
このように実装することでビンゴの判定が多少簡単になります.
穴が開いている部分を$-1$としたため,縦横斜め

元記事を表示

Azure Databricks における Unity Catalog と Spark Config によるAzure Storageへの認証優先度の検証

## 概要

Azure Databricksを使用する際に、Azure Storageへの認証方法として、Unity Catalogの外部ロケーションによる認証とSpark Config(ストレージアカウントキー)による認証のどちらが優先されるかを検証しました。その結果、Unity Catalogの外部ロケーションによる認証が優先されることが確認できました。

具体的な検証方法としては、下記表に示す2つの異なるアカウントを用意し、それぞれで以下の手順を実行しました。Unity Catalogの外部ロケーションを作成したところ、Spark Config(ストレージアカウントキー)による認証が行えず、エラーが発生しました。しかし、Unity Catalogの外部ロケーションを削除すると、再びSpark Config(ストレージアカウントキー)による認証が可能になりました。これらの結果から、Unity Catalogの外部ロケーションによる認証が優先されると結論付けました。

| # | アカウント | 概要

元記事を表示

Databricks にて Databricks SDK 利用時の default auth: cannot configure default credentials エラーへの対応方法

## 概要

Databricks SDK にて`WorkspaceClient`のインスタンスする際に、`default auth: cannot configure default credentials`が発生した場合の対応方法を共有します。対応方法としては、Databricks SDK のアップグレードで解決するようです。2024年2月8日時点では、Databricks Runtime 14.3 LTS においても、アップグレードが必要なようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/4a7cd694-1280-d9f1-152a-e324efed5938.png)

## エラーメッセージと対応方法

### エラーメッセージ

“`python
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
“`

“`text
ValueError: default auth:

元記事を表示

Raspberry Pi サーボモータ制御用クラス

# はじめに
Raspberry Piを使用して複数のサーボモータを制御するためのクラスを作成しました。
初期設定は下記サイトが参考になります。
自分も参考にさせていただきました。

【ラズベリーパイ入門】サーボモーターを制御する方法

# ソースコード

クラスを使用することで複数のサーボモータを独立して制御できます。
また、インスタンスが現在の角度情報を保持しているので値を参照できます。

“`python:ServoMotor.py
import pigpio
import time

class ServoMotor:
“””
サーボモータを制御するクラス

Attributes:
pin: GPIOのピン番号
max_angle: 最大移動角度
min_angle: 最小移動角度
angle: 現在の角度
ini_angle: 初期設定角度
pi: gpio制御
“””
def __init__(self, pin=17, min

元記事を表示

グラフ全体の埋め込み:Graph2vecを実行してみる

## はじめに
グラフ埋め込み(Graph Embedding)は、グラフの要素を低次元のベクトル空間にマッピングする手法です。グラフ構造をコンパクトで連続的なベクトル表現に変換することにより、機械学習などの下流タスクで扱いやすくなります。

埋め込みの手法は、主に「ノードの埋め込み」と「グラフ全体の埋め込み」の二つに分類されます。本記事では、後者の**グラフ全体の埋め込み**の代表的な手法である、**Graph2vec** [1] について、簡単な解説とPythonでの実行例を紹介します。

## 目次
前半では理論をザックリと解説します。後半では、タンパク質のグラフ構造を例に、実際にPythonでGraph2vecを実行した際の結果を評価します。

[解説: Graph2vecとは](#graph2vecとは)
[実行: Graph2vecをPythonで実行する](#graph2vecをpythonで実行する)

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

元記事を表示

Python リスト内包表記の書き方

最近Pythonについて勉強していて、リスト内容表記が便利だったので備忘としてまとめます。

# 基本形

リスト内包型表記の基本形は以下です。

“`py
new_list = [new_item for item in list]
“`

一言で簡単に説明すると、

「`list`の1つ1つの要素を`item`として取り出し、新要素`new_item`として`new_list`に追加する。」

という感じです。

例としては、リスト内包表記を使わず以下のように書いていたプログラムを

“`py
list = [1, 2, 3]
new_list = []
for item in list:
new_item *= 2
new_list.append(new_item)
# new_list = [2, 4, 6]
“`

以下のように簡潔に書くことができます。

“`py
list = [1, 2, 3]
new_list = [item * 2 for item in list]
# new_list = [2, 4, 6]
“`

ちな

元記事を表示

【Python】複数のJSONファイルを一つのJSONファイルにする方法を2つ紹介(os / globモジュール)

# 概要
大量のJSONファイルを一つにまとめる、ということが必要になったのでPythonで実装しました。

ここでは2つの方法(`os`モジュールと`glob`モジュール)を紹介します。

# サンプルコード2種
以下の2つ、どちらのコードでも、複数のJSONファイルを一つのJSONファイルにできます。

– 1つ目の方法(`os`モジュール利用)
– 2つ目の方法(`glob`モジュール利用)

## 1つ目の方法(`os`モジュール利用)

“`py
import json
import os

def combine_json_files(input_folder, output_file):
combined_data = []

# フォルダ内の各JSONファイルを処理
for filename in os.listdir(input_folder):
if filename.endswith(“.json”):
file_path = os.path.join(input_folder, filename)

元記事を表示

Google Colaboratory で Google Material icons が使いたい!

## 背景

– Google Colaboratory の使い方をノートブックのテキストセルに書いている
– Colaboratory の UI の アイコンを Google Material icons を使って表現したい

## 問題点

– Colaboratory のテキストセルでは一部の HTML タグは使えるが、外部リソースの読み込みはできない (Googleどうしなのだから読み込ませてほしい…)
– Colboratory で使える絵文字の中に Google Material icons が見当たらない。

## 解決策

SVG をダウンロードしてきて画像として挿入。

https://fonts.google.com/icons

すきなアイコンを選んで右下の 📥 SVG をクリックでダウンロード。
Colaboratory のテキストセルに埋め込む。

終わり!

元記事を表示

CloudWatchのLogsの取得上限の10,000件を突破する方法

# 上限の10,000件

__CloudWatch__ のコンソールから10,000件を超えるログはダウンロードできません。なので、コンソール上からできることは、取得できたログから次の10,000件の範囲を絞り込んで、10,000件のログを取得、、、以下繰り返し。といったことくらいです。

これはちょっとめんどくさいのでPythonの `boto3` を使ってらくに取得しましょう。

:::note info
AWS SDK for Python (Boto3) を使用すると、AWS の使用を迅速に開始できます。Boto3 を使用することで、Python のアプリケーション、ライブラリ、スクリプトを AWS の各種サービス(Amazon S3、Amazon EC2、Amazon DynamoDB など)と容易に統合できます。

引用: https://aws.amazon.com/jp/sdk-for-python/
:::

# 実際のソース

プログラムは下記のリンクのものを参考につくりました。変更点は主に次の通りです。

– 出力の方法をCSVからデータフレームに変更
– ク

元記事を表示

Python Script: Retrieve and Print Zabbix API Version

## Step 1

First, ensure you have the `requests` library installed in your Python environment, as it’s a common library for making HTTP requests. If it’s not installed, you can install it using pip

“`
pip install requests
“`

## Step 2
Use the following Python script to retrieve Zabbix API version.
**Replace `YOUR_ZABBIX_URL` with the URL of your Zabbix server** and ensure that you have the correct endpoint for the API (commonly it’s /api_jsonrpc.php).

“`retrieve_zabbix_version.py
import

元記事を表示

【Python】文字列の先頭・末尾n文字を削除する方法

◆問題
文字列の先頭・末尾n文字を削除する方法が分からなかった。

◆対処法
スライスを使用すればできた。

“`python:slice.py
txt = ‘あいうえお’
print(txt[:-2]) #末尾から2文字を削除
print(txt[4:]) #先頭から4文字を削除

# 実行結果
あいう

“`

元記事を表示

【Python】カタカナやひらがなをそれぞれに変更する方法

◆問題
カタカナやひらがなをそれぞれに変更する方法が分からなかった。

◆対処法
「jaconv」を使用すればできた。

“`python:kana_hira.py
import jaconv

word1 = “ヤサイ”
change_word_hira = jaconv.kata2hira(word1)
print(change_word_hira)

word2 = “らーめん”
change_word_kana = jaconv.hira2kata(word2)
print(change_word_kana)

# 実行結果
やさい
ラーメン

“`

元記事を表示

【Python】画面をスクロールする方法

◆問題
画面のスクロールができず、要素の取得やクリックができなかった。

◆対処法
「driver.switch_to.window」を使用したらできた。

“`python:after.py
# 最下部までスクロール
driver.execute_script(‘window.scrollTo(0, document.body.scrollHeight);’)

# 最上部までスクロールする
driver.execute_script(“window.scrollTo(0, 0)”)

# X座標に0ピクセル、Y座標に500ピクセルスクロールする
driver.execute_script(“window.scrollTo(0, 500)”)
“`

元記事を表示

【Python】ウインドウの切り替え方法

◆問題
新規ウインドウを立ち上げた際に、切り替え方法が分からず操作できなかった。

◆対処法
「driver.switch_to.window」を使用したらできた。

“`python:after.py
new_handles = driver.window_handles
driver.switch_to.window(new_handles[0]) # 1番目のウインドウ
driver.switch_to.window(new_handles[1]) # 2番目のウインドウ

driver.switch_to.window(new_handles[-1]) # 最後のウインドウ
“`

元記事を表示

実務でPandasとMatplotlibを使う時がやっと来た

# はじめに

AWS エンジニアになる前は Python を独学で学び、Pandas や Matplotlib などデータ分析に関わるライブラリを触ってきました。

実務で使うことはあるのかと思っていましたが、ようやく学んだことを活かせる時が来たので記事にしようと思います。

# どんな業務で扱うことになったのか?

AWS エンジニア(インフラ担当)として、**『AWS リソースの使用状況を月次で報告する』** という月一の定例業務が発生することになりました。

EC2 インスタンスの 1 ヶ月の CPU やメモリの使用率などの推移を見て、今後のキャパシティプランニングに役立てる目的のためです。

私がジョインしているプロジェクトでは、システムの機能ごとに複数の AWS アカウントを使用し、かつ EC2 インスタンスを冗長化しているためサーバ数が多い状況です。
手作業で各サーバの CPU、メモリ使用率を確認していては月一の作業に対しての工数がかかってしまいます。

そこで、以下の方法で『工数がかかりすぎる問題』を解決しました。

[![Image from Gyazo](https

元記事を表示

OTHERカテゴリの最新記事