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

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

Cartopy利用時のプロキシ認証について

## はじめに

pythonライブラリのCartopyの地図データはインストール時にはローカルに保存せず、利用する際にネット経由でダウンロードする。その際に標準ライブラリ`urllib.request`を利用する。
ただしCartopyでプロキシ設定やSSLサーバ証明書の設定ができないという問題があり、外部の設定で行わなければならない。
標準ライブラリ`urllib.request`のうちSSLに関係するものは標準ライブラリ`ssl`が関係し、`ssl`は`openssl`を使用している。

## プロキシ設定について

環境変数

– http_proxy=protocol://[user:passwd@]host:port
– https_proxy=protocol://[user:passwd@]host:port

## SSLサーバ証明書について

### pipの場合

こちらの`ca-certificates`の仕組みでSSLサーバ証明書を更新すると`openssl`でデフォルト利用している証明書が更新される。

https://qiita.com/Tor

元記事を表示

パーセプトロンの学習をPythonで実装する

## はじめに
先日、自己学習のためにパーセプトロンの学習をPythonを用いて実装したので、その備忘録として記事に残します。今回は「2クラス分類において、線形分離可能かを判定するコードの実装」をゴールとしました。

## パーセプトロンの学習方法
任意の入力パターン$x_i (i=1,2, \cdots ,n)$と、重み$w_i (i=0,1, \cdots ,m)$を用いて以下の識別関数$g(x)$を用意します。
“`math
g(x) = w_0 + w_1x_1 + w_2x_2 + \cdots + w_{m-1}x_{n-1} + w_mx_n
“`

これにより、例えば2クラス分類の場合、関数$g(x)$の出力によって次のようにクラスを決定できます(分類クラスは$c_0, c_1$)。
“`math
\left\{
\begin{array}{ll}
g(x) > 0 & \Rightarrow x \in c_0\\
g(x) < 0 & \Rightarrow x \in c_1\\ \end{array} \right.

元記事を表示

Python+poetry+fastAPIのDocker開発環境構築

# 前提条件
– Python 3.11.6
– Poetry 1.82

# フォルダ構成

大体`poetry new`で生成されるものを使用しました。
“`
my_project/
├── .venv/
├── main/
│ └─ server.py
├── tests/
│ └─ テストファイルたち
├── Dockerfile
├── poetry.lock
├── pyproject.toml
├── README.md
├── .dockerignore
└── .pre-commit-config.yaml
“`

testやpre-commitは今回の記事では触れません。

# ライブラリ追加

poetryで必要なライブラリをインストールしていきます。
必要なのは`fastapi`と`uvicorn`です。

“`bash
poetry add fastapi uvicorn
“`

# ファイル作成

## server.py

“`server.py
from fastapi import FastAPI

server = FastAPI(

元記事を表示

PythonでGUIする

# PythonでGUIしましょ
最近は、めっきりGUIプログラミングをすることがなくなりました。
Borland製品でゴリゴリ書いたり、MFCであぁだこぉだしたりしたのも、今は昔。
GUIっていったって、まぁHTMLとか書いてれば済むようなプログラムばっかり書いてたので、スタンドアローンのGUIとかひさしぶり。
そんなんC#で書けば?ってまぁそうなんだけど。
ただ、退屈な仕事はPythonにやらせてるってのもあり、いろんなクラスライブラリをつくちゃった関係で、PythonでGUIしたくなったわけですね。

# つくるもの
今回はですね、PICで作成したガジェットのデータをCOM経由(USBのやつ)でデータを受け取るってやつです。
実際には、電圧を測って、それを受け取ります。
正確には、0.05秒刻みで電圧の変化をグラフにしたくて、、という、DIY的にはレアな要求要件ですね。
まぁここでは、PythonのGUIの話なので、そこらへんの細かいことは省略

元記事を表示

PythonまたはGoでDockerコンテナに立ち上げたMySQLサーバーと通信する方法

データベースを構築するにあたって,DockerコンテナでDBもアプリも動くといいですよね?ローカルで動かす際にdockerコンテナ内で処理が完結するのでシームレスに通信することができる.
本記事ではPythonまたはGoを用いてDockerコンテナ上のMySQLサーバーと通信する方法について記載する.
![スクリーンショット 2024-07-05 13.21.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/e36ccd6a-bc6c-5805-2adb-e506be6011b3.png)

今回は以下の知識はある前提で話をする
**SQLの文法**

https://qiita.com/tarakokko3233/items/f038fbaccdd92fb0308a

**Dockerの基本**

https://qiita.com/tarakokko3233/items/6f6d03bd6d1e69c9e67e

**仮想環境とDockerコンテナの違い**

https://qi

元記事を表示

20240705_3_adoc

:hardbreaks:
= 反映・送信処理 機能設計書
== 1. 要件定義
=== 1.1. 要求分析
==== 1.1.1. 反映送信処理の全体構成
反映送信処理は、反映処理と送信処理に大きく分類される。反映処理ではDB更新情報テーブルからリファレンスDBへのデータ反映、ファイルサーバ情報の連携、データ反映処理の種類に応じたデータの追加・削除・変更、部店削除時のBPR-DCユーザ定義ファイルを利用した残ユーザ調査、ダミー課Gr申請情報のダミー課Gr専用DB反映、リファレンスDBの部店に対する一律的なデータ更新が行われる。送信処理ではCSVファイル書き出し、ファイル送信前validation、共通認証システムへのファイル送信が行われる。反映送信処理では、Factory/Facade構成は利用しない。
反映送信処理の構成要素は以下の通りである。
DB更新情報テーブル:パターン編集後のデータ群を格納し、リファレンスDBのレコード情報とリファレンスDB更新用のデータ(更新種別・更新日)を保持する。 +
リファレンスDB:共通認証システムへの受け渡しを行うためのマスタデータであり、リファレ

元記事を表示

20240705_2_rdb

— 断面取得の実行タイミング ———————————————————-

## Prompt:
続いて、{業務要件}に記載したリファレンス履歴DBの仕様について検討します。
まず{業務要件}を基に現在の仕様を整理してください

## Response:
業務要件に基づいて、リファレンス履歴DBの現在の仕様を以下のように整理しました。
=== リファレンス履歴DBの仕様
==== 目的
リファレンスDBの更新前の断面を保持し、更新差分の確認や変更履歴の追跡を可能にする。
==== 保持するデータ

リファレンスDBの更新前の全データを保持する。
リファレンスDBと同じテーブル構成とする。

==== 履歴データの生成タイミング

リファレンスDBの更新処理の直前に、更新前のデータを履歴DBに保存する。

==== 履歴データの保持期間

業務要件には明確な保持期間の定義がないため、現在の仕様では不明。

==== 履歴データの利用方法

リファレンスDBの更新前後のデータを比較し、更新差分を確認する。
リファ

元記事を表示

20240705_1_e

続いて2.2.2. ファイルサーバ情報の連携について情報を追加します

以下の内容を500字程度で整理してください。 出力形式はasciidocにしてください。 箇条書きにできるところは対応してください。

<通知処理定義>について、UMLでフローチャートも作成してください。
<通知シーケンス定義>について、UMLでシーケンス図も作成してください。

<前提情報>
– ユーザ管理サーバ:今回構築するサーバのこと。リファレンスDBという行内の部店情報を管理するDBを保有する
– 分散運管: ログ監視を行うサーバのこと。ユーザ管理サーバのWindowsイベントログを監視し、E-HUBシステムへ連携する中継的な役割を持つ。
– E-HUB: インシデント監視システムのこと。分散運管から連携されたインシデント情報を表示する機能を持つ
– opera インシデント管理: E-HUBに出力されるメッセージと一致するような条件文を定義する。定義したメッセージが‘E-HUBから検出された場合、システム担当者にインシデントメールを送付する。

<概要説明>
– 新規追加・廃止の申

元記事を表示

DjangoアプリケーションでAWS S3を使用して画像をアップロードする設定方法

# AWS S3への画像アップロードを行うDjangoアプリケーションの設定方法
この記事では、自分がDjangoアプリケーションでAWS S3を使用して画像をアップロードするために行った設定を記述します。具体的には、Djangoの設定ファイルにAWS認証情報を追加し、Apache経由で環境変数を設定する手順を詳しく載せておきます。

## 前提条件
AWSアカウントがあること
Djangoアプリケーションが既にセットアップされていること
Apacheがインストールされ、設定されていること

## ステップ1:AWS認証情報の設定
AWS管理コンソールにログインし、新しいアクセスキーを作成します。作成したアクセスキーとシークレットアクセスキーをメモしておきます。

## ステップ2:Apache環境変数の設定
AWS認証情報をApacheの環境変数として設定します。これにより、DjangoアプリケーションがAWS S3にアクセスするための資格情報を取得できます。

Apacheの環境変数ファイルを編集します:
“`bash
sudo nano /etc/apache2/envvars

元記事を表示

【3minで読める】DS初学者向け ドキュメントを読んだときにクラスが何かわかるようにしよう!基礎の基礎編!

# 本記事読了後の目標!
本記事はDS初学者向けですので、ツヨツヨエンジニアの方々には向いてないと思います。
まず本記事読了後の目標は、自分で公式ドキュメントなどを眺めたときに、クラスにビビらないようにすることです!
それも筆者も独学からDSをスタートしたとき、関数とかはよくわかるけど、結局クラスってなんなんだと思っており、毎回ドキュメントを読んだときに、なんとなくわかるし使えるけど、クラスがよくわからず、詳細には捉えられてないなという部分が多かったからです。
ぜひ本記事を読んで、少しでもドキュメントなどを読む際の拒否反応が減れば嬉しいです!!

# 想定読者
– 独学で学んでいるエンジニア・データサイエンティスト
– 駆け出しIT系の方々

# クラスとは?
クラスとは、オブジェクト指向プログラミング(OOP)の基本的な概念の一つで、関連するデータ(属性)とメソッド(関数)を一つにまとめたものであり、新しいオブジェクト(インスタンス)を生成するための設計図やテンプレートです。

1. クラスの基本的な特徴
– カプセル化
– クラスは、データとそのデータを操作

元記事を表示

生成AI超入門!先生と一緒にチャットボットを作ってみよう!

先生「最近の技術ブログのトレンドはやっぱり生成AIだね。特にAmazon Bedrockの話題が多いよ」

生徒「Bedrockってなんですか?」

先生「生成AIのモデルをAPIで簡単に使えるサービスなんだ。例えばOpenAIのChatGPTとか、AnthropicのClaudeとかね。
[GPT-4超えの日本語性能? 話題のELYZA製LLMをBedrockにインポート! サーバーレス化してみよう](https://qiita.com/minorun365/items/eadb4e818f71a802f0e7)
っていう記事では、国産のELYZAのLLMをBedrockにインポートしてサーバーレスAPIとして公開してるんだ。すごいよね!」

生徒「へぇー!面白そう!でも生成AIって難しそうで…」

先生「確かに、新しいモデルや技術がどんどん出てきて、追いかけるのは大変だよね。でも、基本的な仕組みを理解すれば、そんなに難しくないよ。
例えば、[エンジニアにも知って欲しいChatGPT基本テクニック](https://qiita.com/b-mente/items/93ea3d9a

元記事を表示

最近の生成AI系技術ブログトレンドまとめ

## 最近の生成AI系技術ブログトレンドまとめ

IT系の技術ブログを読んでいると、最近は **生成AI** や **LLM** 関連の記事が多いですね!特に **Amazon Bedrock** がリリースされてから、関連技術や活用方法を解説する記事がQiitaにたくさん投稿されています。

Bedrockは、複数の生成AIモデルをAPI経由で利用できるサービスです。OpenAIのChatGPTや、AnthropicのClaudeなど、話題のモデルが手軽に使えるということで、注目されています。

例えば、こんな記事がありました。

### 話題のELYZA製LLMをBedrockでサーバーレス化!

**[GPT-4超えの日本語性能? 話題のELYZA製LLMをBedrockにインポート! サーバーレス化してみよう](https://qiita.com/minorun365/items/eadb4e818f71a802f0e7)**

この記事では、国産LLMであるELYZAのモデルをBedrockにインポートし、サーバーレスなAPIとして利用する方法を紹介しています。

> # L

元記事を表示

Kaggleコンペでトップ4%になった簡単ベイズ最適化

![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986141/db8724e8-313c-6537-183b-d16af12fa6b0.png)

## 参加したコンペについて
参加したのはこちらのSwagコンペです。

https://www.kaggle.com/competitions/playground-series-s4e6/

GDPや両親の学位など対象とする学生の周辺データからその学生の卒業、退学、その他の3つに分類するという課題です。

Swagは賞金がありませんが、Kaggleがホストするコンペで、この時は世界から2800人程度が参加しました。開催期間は1か月です。

私の順位は **107位 / 2684位** でした。
過学習を防ぐような工夫もしたので最後にグッと順位が上がりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/986141/2df70148-ce66

元記事を表示

Kaggleから学ぶPandasのテクニック

KaggleのNotebookで見つけたPandasのテクニックのメモ

元データ:[NFL_Predictions](https://www.kaggle.com/code/codyjanderson/nfl-predictions)

# フィルタリング
eventがball_snap, pass_forward, だったら抜き出す、みたいなことを一行でやっている。
“` Python
plays_pass = plays_pass.loc[plays_pass[‘event’].isin([‘ball_snap’,’pass_forward’,’lateral’,’fumble’,’fumble_offense_recovered’,’qb_sack’,’qb_strip_sack’,’run’])]
“`

# 集計
キーでグループ化した中からmin値を求める。aggは使ったことがなかったが、これは便利。あと、集計したあとreset_index()でインデックスを初期化するのも大事なテクニックだと思う。
“` Python
keys2 = [‘gameId’,’playI

元記事を表示

ハンコを押す技術 (Pythonで画像生成)

こんにちは。京セラコミュニケーションシステムの徳丸です。( @kccs_masataka-tokumaru )

無くなりそうで無くならない、ハンコありますよね。

昨今だと、書類もデータでのやり取りが増えてきましたが、それでも付きまとうハンコ。

仕方がないので、ハンコの画像を生成してペーストするハンコ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809400/dce92474-e692-d323-38d8-feef28019807.png)

こういうタイプは1回作っておけばいいですが、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809400/6ff955db-450e-585a-c37d-641987b80d82.png)

以外と作るのがめんどくさい、データ印。

今回は、Windows上でPythonを使って、データ印の画像を生成・クリップボードにコピーしてく

元記事を表示

期末に備えて爆速でExcel書類を作成する(PythonによるExcel操作の自動化)

# 結論から先に言うと。

Excelで定型書類作成の手間が膨大だったので、 Pythonと `pywin32` ライブラリで自動化した。

# ことの始まり

こんにちは。京セラコミュニケーションシステムの徳丸です。( @kccs_masataka-tokumaru )

今年も、ほぼほぼ半分が過ぎ去りましたね。この時期には事務作業に忙殺されていた方もいらっしゃるのではないでしょうか。

普段、あまり事務作業の多くない私でも、この時期にはぼちぼち事務作業が増え忙しいことがままありました。

特に、同じような定型書類をいくつも作ったりするシーンが多く、大変だった記憶があります。

主にExcelに必要事項を記入していくことが多いのですが、Excelでの事務作業、なかなかに厄介です。

私が実施していた事務作業は次の通りでした。

# この記事の狙い・対象者

独力でPythonのコードが書ける方。

Excelを自動操作することで、事務作業を効率的に行えるようにする例を示す。

# この記事でやらないこと

ライブラリの細かい引数や、使い方の説明。

# 作業の概要

複数の他社向けに

元記事を表示

Pythonでフィボナッチ数列のn番目の値、総和を出力するプログラムコードを作ってみた

### 前置き
今日は、フィボナッチ数列のn番目の値を出力できるプログラムコードをPythonで作ってみた。さらに、1番目からn番目までの総和も出力してみた。

### フィボナッチ数列とは
前の2項を足して出来上がる数列のことである。
『1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597….」のように、前の数字を足した数が続く法則のことである。
3項目の2は,1項目の1と2項目の1を足した結果。
4項目の5は,2項目の2と3項目の3を足した結果。
つまり、n項目の数は、n-2項目の数とn-1項目の数の和になる。
漸化式:
![Screenshot 2024-07-02 at 11.41.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/38099324-5e74-42b7-8250-764b73476830.png)
このように、次の項は、前の2項を足し合わせたものになる。
引用元:https://terakoya.ameba.

元記事を表示

PythonでBMIを計算するプログラムコードを作ってみた

### 前置き
今日は、PythonでBMIを計算するプログラムコードを作りました。
BMIとは、ボデイマス指数のことであり、体格を表す指標として国際的に用いられている指数です。
計算式:[体重(kg)]÷[身長(m)の2乗]身長はcmではなくmで計算します)。
引用元:https://www.e-healthnet.mhlw.go.jp/information/dictionary/metabolic/ym-002.html

### 参考に
BMIの判定基準
引用元:https://keisan.casio.jp/exec/system/1161228732
![Screenshot 2024-07-02 at 11.21.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2518583/f504ab92-8e50-37f5-8f1a-d0b5cd53225a.png)

### プログラムコード
“` python
def calculate_bmi(weight, height):
bm

元記事を表示

Pythonで、日英両方で曜日を出力するプログラムコードを作ってみた

### 前置き
今日は、ユーザが年月日を入力したら、その曜日が日英両方で出力されるプログラムコードをPythonで作りました。1週間は月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日の7日間あります。英語では、Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sundayの7日間で、1週間は成り立っている。

### プログラムコード
“` python
import datetime

# 曜日の日本語名と英語名のリスト
WEEKDAYS_JP = [‘月曜日’, ‘火曜日’, ‘水曜日’, ‘木曜日’, ‘金曜日’, ‘土曜日’, ‘日曜日’]
WEEKDAYS_EN = [‘Monday’, ‘Tuesday’, ‘Wednesday’, ‘Thursday’, ‘Friday’, ‘Saturday’, ‘Sunday’]

def get_weekday(year, month, day):
try:
date = datetime.date(year, month, day)

元記事を表示

PythonのTkinterでGUIを用いたPassword Managerを作成してみた

### 前置き
最近、Tkinterを使ったGUIを学び出して、今日はPassword Managerを作りたくなった。
Passwordとは、機密保護などのため、正式の登録者であることを確認するものである。
一般的に、安全なパスワードにするには、最低でも10桁以上の英数字と記号を組み合わせることが推奨されている。今回は、10文字から22文字のパスワードを作成するプログラムコードにした。Password Managerの画像はCanvasを使って、自分で作成した。

### プログラムコード
“` python
from tkinter import *
from tkinter import messagebox
from random import choice, randint, shuffle
import pyperclip
import json
import search

# —–Password Generator ————- #
#Password Generator Project
def generate_password():

元記事を表示

OTHERカテゴリの最新記事