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

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

作って理解するローカルトンネルの仕組み

### 1.目的

本記事の目的は、Pythonでのトイプログラムの実装を通して、ngrokに代表されるローカルトンネルの仕組みを理解することです。
– はじめに、ローカルトンネル技術が使われる様になった背景について説明します。
– 次に、その代表的なツールであるngrokのアルゴリズムを説明します。
– 最後に、そのアルゴリズムの仕組みを理解するために、Pythonで簡略化したプログラムを作成し、その挙動を確認します。

### 2.前提知識

– Linuxの知識・経験(LPIC Level 1程度)
– 必須:TCP/IPの基本的知識
– Pythonの基礎

### 3.背景の説明

通常、ネットワーク上のホストPCに対して外部のインターネットからアクセスするためには、以下の要件を満たす必要があります。

– ホストPCがネットワーク層(L3)でアクセス可能なIPアドレスを設定している
– ホストPCがトランスポート層(L4)で内向きの通信を許可している

これ以外にも、セキュリティ確保の目的で、SSL暗号化などのアプリケーション層上の制約がしばしば設けられます。

しかし

元記事を表示

PythonでExcel (XLS/ XLSX)をPDFに変換する

PDFにExcelファイルに変換すると、印刷や共有文書に加えて、フォームデータの保存を容易にすることができますまた、フォームのスタイルなどのレイアウトは、異なるデバイスやオペレーティングシステムでの一貫性を維持することを確認することができます。 今日は、ExcelをPDFに変換する簡単な方法を実現するサードパーティのPythonライブラリ[**Spire.XLS for Python**](https://www.e-iceblue.com/Introduce/xls-for-python.html) を紹介します。

### Excel to PDFの実装手順
1. まず、pipコマンドで依存ライブラリをインストールします;
`pip install Spire.XLS`
2. インストールが完了したら、必要なライブラリをインポートします;
3. Excelドキュメントをロードし、Spire.XLS for Pythonが提供する**Workbook.SaveToFile()** または**Worksheet.SaveToPdf()** を使用して、Excelワークブックまたは指定し

元記事を表示

SQLAlchemyのexecute()を用いてSQL文を実行したい

## はじめに
– sqlalchemyの難しそうなメソッドを利用せず、簡単にSQL文を実行したかった
– また、sqlalchemyを使っていて、何箇所か詰まるところがあったためご共有

## Code sample
### 1. (任意)DBとコミュニケーションするclassを作る
– 使いまわしたり、何個もオブジェクトを作成する時はclass化しておくと便利です。(ログとかも)
“`python
from sqlalchemy import Connection, MetaData, create_engine, text

class DBClass:
def __init__(self, schema)
self.schema = schema
self.engine = create_engine(
“postgresql://{user}:{password}@{host}:{port}/{database}”
)

self.metadata = MetaData(schema=self.schema)
self

元記事を表示

Google Colaboratory(Python実行環境)の初期設定

Google Colaboratoryの初期設定を残します。

# インストールする
## Google Driveを表示する

## 新規をクリックする
![0.新規(選択前).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106311/ddd1f572-5d5c-fd7d-7adb-3f2e2b610d0a.png)

## アプリを追加をクリックする
– その他 > アプリを追加

![1.新規.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106311/436ba7e4-48e8-1786-3bd9-e76929951078.png)

## アプリ検索画面で検索する
– Colaboratoryと入力する
– Colaboratoryをクリックする
![2.検索.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106311/2e1

元記事を表示

Python初心者に贈る、おすすめの環境構築 venv

# はじめに
2020年のコロナ禍にプログラミングを始めました。自己紹介にも書いているけど、大学の時にfortrunの単位を落としたリベンジ。w
で、ほとんどのPythonの初心者向けの本や講座、YouTubeなどは、まずAnacondaを勧められる。
ご多分に漏れず、僕もそうした。

で、しばらくしてDeep Learningに足を突っ込むんだけど、まぁ環境構築で苦労するのなんの。随分と時間をかけたし、苦労した。
そんな経験をしないようにおすすめを書いていこうと思う。
ということで、れっつご〜。

# 僕の環境
僕は会社ではWindows、家ではMacがメインでWindowsも使う。
なので、簡単に環境が作れて、管理できて、かつWin、Mac関係なくできることが肝心
qiitaは自宅で書いてるのでMacです。
2020 MacBook Air M1
python==3.10.8
pythonはAnacondaとかは使ってません。
こちらからダウンロードしたもの
https://www.python.org/

# 前提
Pythonがインストールされてること。
何より、ファイルパスの

元記事を表示

RとPython(pandas)対比表

# はじめに
RstudioのRと、VscodeのPythonを交互に使っていると、しょっちゅうどっちがどっちだか分からなくなる。`groupby()`と書くべきところを`group_by()`と書いてエラーに怒られて「なんで?」と思ったりする。ということで、自分が混乱しがちなものを整理してみた。

# 対比表

| 操作カテゴリ | 操作内容 | VScode/Python/Pandas | Rstudio/R/tidyverse |
|————–|———-|—————|————-|
| ファイル | CSVファイル読込 | `pd.read_csv()` | `read.csv()` |
| | CSVファイル出力 | `df.to_csv()` | `write.csv()` |
| | ファイル一覧取得 | `glob.glob()` | – |
| 作業場所 | 現WD取得 | `os.getcwd()` | `getwd()` |
| | WD設定 | `os.chdir()` | `setwd()` |

元記事を表示

【競馬予想AI】新馬戦予想に掲示板データを使ってみた話

## はじめに

競馬の新馬戦予想は、出走馬に関する過去のデータが乏しく難しいものです。そこで、netkeibaの馬毎の掲示板データを用いて、機械学習を活用した新馬戦の予測に挑戦しました。この記事では、データ収集から学習、予測までのプロセスと、その結果について詳しく紹介します。

## データ収集

netkeibaから新馬戦に関するデータをスクレイピングで収集しました。対象としたのは2022年にJRAが開催した新馬戦301件、出走した馬3948頭分の掲示板データです。スクレイピング後は、データの前処理として、Unicode正規化や特殊文字の除去などを行いました。

“`python:テキストの前処理
def preprocessing_text(text):

text = unicodedata.normalize(‘NFC’, text)

# ()で囲まれた部分を削除
emoji= r’\([^)]*\)’
text = re.sub(emoji, “”, text)

text = re.sub(r'[^\w\

元記事を表示

ローカルLLMでAlpacaデータのようなインストラクションデータを自動生成してみた

# はじめに
OpenAIのtext-davinchi-003を利用して自動生成されたインストラクションデータである[Alpacaデータ](https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json)がStanford大学から公開されてから約1年が経過しました。

このデータはインストラクションデータの生成にインパクトを与えましたが、OpenAIの利用規約の関係から商用利用ができないという問題を抱えていました。

当時は同じようなデータをローカルLLMで作成することは困難でした。しかし、2024年現在のローカルLLMならtext-davinchi-003でできていたこともできそうだと思い挑戦してみました。

生成したデータと生成に利用したコードは以下で公開しています。

https://huggingface.co/datasets/toshi456/Gemma-Alpaca-Data-13k

https://github.com/tosiyuki/Gemma-Alpaca-Data?tab=read

元記事を表示

IoT学習HATキットを使って緊急地震速報アラームを作った

## はじめに
秋月電子さんが販売している。[IoT学習HATキット](https://akizukidenshi.com/catalog/g/g114568/)を使用して緊急地震速報アラームを作りました。
## 準備するもの
– IoT学習HATキット(Raspberry Pi Zero WH用)
https://akizukidenshi.com/catalog/g/g114568/
– RaspberryPi zero WH
https://akizukidenshi.com/catalog/g/g112961/

IoT学習HATキットは部品の状態で届きます。ハンダ付け作業がありますのでハンダ付けのツールが無い方はそれも揃えておきましょう。
## IoT学習HATキットのハンダ付け作業
説明書が付属していますので特に難しいことは無いですがGPIOヘッダピンは先に付けた方が良いと思いました。私は最後に付けたのですがハンダ付け時にLEDなどと干渉してしまいハンダ付けが少し難しかったです。
## RaspberryPiの準備
OSのインストール方法などは沢山情報があるかと思い

元記事を表示

Google API をなるべく使わずにゴルフ場までの所要時間ランキングを作った話

# はじめに

初めまして、L19 (リクと読みます) と言います。私は学生時代、信号処理や機械学習分野に応用を持つアルゴリズムに関する研究をしていました。
現在はサイバーセキュリティ関連製品メーカーの企業で統合ログ管理ソフトウェアの運用・開発を行っています。

昨年末、株式会社ノマドクリエイティブを経営している友人 (以下 K さん) から「一緒にゴルフをする人を車でピックアップするとき、ゴルフ場までの所要時間が短い順に並べて比較できると良い」という話を聞きました。
今所属している会社の業務内容と直接の関係はありませんが、学生時代にアルゴリズム研究をしていた身としては興味深く、効率的な方法が実現できないか考えてみることにしました。

# ゴルフ場までの移動時間が短い順に探せるゴルフ場予約サービス「NearGolf」

この「ゴルフ場探索」は、 K さんがサポートしている NearGolf がサービスとして既に提供しています。

https://neargolf.jp

NearGolf は、その特徴として「指定した駅を経由したとき所要時間の短い順にゴルフ場を検索すること」ができます。

元記事を表示

ファイル名・コードの変数名をテキトーにつけてた結果…

## 自己紹介

英語の苦手なwhile-true-ifです。

Pythonは小学生のころからやっています。

## この記事の対象者

– Pythonのコード内の変数がテキトーな人
– フォルダ・ファイル名がテキトーな人
– クソコードが好きな人

## とある日の友達との会話と後悔

### 状況

友達A君が自分のコードをたまたまみてしまった。

そのコードはいわゆる「クソコード」と呼ばれるものだった…

### 会話

友達はA、自分はWとします。

A:えっ!なにこれ。変数名テキトーすぎない?

W:普通だよ。大丈夫。何の変数か自分でわかるから。

A:変数名を`a`、`b`、`c`、`d`、`e`とかってつけてるけど大丈夫なの?26個使い終わったらどうするつもりなの?

W:そんなことないよ。変数はせいぜい10個くらいだよ。

A:もう少し変数名をわかりやすくした方がいいと思うよ。

W:今度からそうするよ。

### その後

「今度からそうする」と言ってしまったが、結局いつものクセでついつい変数名は1文字にしてしまった…

そのたびに似たような会話を何回かし

元記事を表示

ABC346 with Python(A~F)

今回は、初めてのQiita記事投稿がてら、ABC346のA-F問題までの解説をPythonで書いてみました。誰かのお役に立てれば幸いです。。。

# A – Adjacent Product
## 問題
$N$ 個の整数 $A=(A_1,A_2,\cdots,A_N)$が与えられます。
また、$B_i = A_i \times A_{i+1} (1 \leq i \leq N-1)$ と定めます。
$B_1,B_2,\cdots,B_{N-1}$ をこの順に空白区切りで出力してください。

https://atcoder.jp/contests/abc346/tasks/abc346_a

## 考察
隣り合っている要素同士の積を計算してリストに代入、それを答えとして表示する。

## コード
“`python:A.py
N = int(input())
A = list(map(int, input().split())
B = []
for i in range(N – 1):
B.append(A[i] * A[i + 1])
print(*B)
“`
#

元記事を表示

Azure FunctionでJSONパーサーAPIを作ってみる。

# はじめに

[naritomo](https://twitter.com/KanagawaLo81146)と申します。

本職はインフラエンジニアを行っています。

これまで作成していたJSONパーサーAPIを、AzureのFunctionを使用して立ち上げみました。

いろいろアドバイスいただけると嬉しいです。

## 開発概要

以下の仕様とします。

* API稼働フレームワークはLambda(Python)+API Gatewaayを使用する
* API入力は、以下のものを入力する
– URLにクエリでJSONキーを指定する。(?key=key1)
– POSTボディーにJSONデータを入れる
* API出力は以下のものとする
– クエリで指定したJSONキーに対応した値をプレーンテキストで出力する

## 事前準備

Azureアカウントを作成していること。

*本システムでしたらかかっても1日あたり0.01ドルですみます。

## Azure関数新規作成(Pythonでの作成)

Azure Functionsの開発環境をローカルマシンにセットアップします。

元記事を表示

【Python+PyAudio】音を切り替えたときの「プチッ」としたノイズへの対処法

# 目次
[1.はじめに](#はじめに)
[2.問題の原因調査](#問題の原因調査)
[3.位相について](#位相について)
[4.位相を理解するためのポイント](#位相を理解するためのポイント)
[5.アプローチ](#アプローチ)
[6.実装](#実装)
[7.検証](#検証)
[8.まとめ](#まとめ)
[9.今後の検討](#今後の検討)
[10.所感](#所感)
[11.参考](#参考)

## はじめに

Python+PyAudioを活用し、正弦波(sin波)を生成して音鳴らす場合、音を切り替える際に「プチッ」というノイズが聞こえることがあり、不快感を生じさせる恐れがあります。この記事では、そのようなノイズの発生を抑える方法について紹介します。

より具体的に理解して頂くために、デモ動画を紹介します。以下のデモでは、音が「シ→ド→シ」ととそれぞれ2秒ずつ切り替わります。

### 「ノイズあり」デモ