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

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

Pythonのクラスについての知識をまとめてみた

Pythonのクラスについての理解が浅いため、業務で活用できるよう勉強した。勉強資料としては主にYouTubeと公式ドキュメントを使用した。([参照](#参照))
# 目次
[(1)クラスとは](#1-クラスとは)
[(2)クラスの表現](#2-クラスの表現)
[(3)Constructorの実装](#3-Constructorの実装)
[(4)Finalizerの実装](#4-Finalizerの実装)
[(5)継承](#5-継承)
[(6)クラスメソッド](#6-クラスメソッド)
[(7)スタティックメソッド](#7-スタティックメソッド)

## 1. クラスとは
クラスとは、概念として存在するオブジェクトをインスタンスとして実際に作成するための仕組みである。
クラスの説明をするときは、よく鯛焼き機が例に出される。クラスの概念を鯛焼き機の例に当てはめると以下のようになる。
||例|
|:-:|:-:|
|オブジェクト|鯛焼きという概念|
|クラス|鯛焼き機|
|インスタンス|鯛焼き|

とにかく、クラスという設計図を作成することで、その設計図のルールに則ったインスタンスという実

元記事を表示

ちょっとやりとりするだけのLINEBOTを作ってみる

お疲れ様です。みやもとです。

また懲りずにLINEBOTを作ってみました。
今回は
* 初回のメッセージは固定
* 2回目以降のメッセージは相手の回答に合わせて変える
という、簡単な会話ができるBOTを作るのが目標です。

:::note
この記事に出てくるコードはGoogle Cloud Functionsで動作を確認しています。
・環境:第2世代
・トリガー:HTTPS
・認証:未認証の呼び出しを許可
・割り当てメモリ:256MiB
・ランタイム:Python 3.8
:::

## 前提:参考記事
今回も前回までのLINEBOTと同じような手順で作成しています。
基本的なところは以下の記事を参考にしていますので、LINEBOTを作ってみたい方はこちらを先にご確認ください。

https://note.com/nekoniii3/n/n0a01ec6731b5

https://qiita.com/spre55/items/da2ded18ac4652abb936

上記記事を参考に
* LINE Developersの登録、LINE Messaging APIチャネルの作成
*

元記事を表示

Azure Synapse Analytics で openpyxl を用いて ADLS Gen2 上の Excel ファイルを操作する

## はじめに

Azure Synapse Analytics では ADLS Gen2 上のファイルを操作できます。
今回は ADLS Gen2 上の Excel ファイルを [openpyxl](https://openpyxl.readthedocs.io/en/stable/) を使用して操作する方法を説明します。

## 手順

### 1. ユーザーへの権限付与

ノートブックはワークスペースログインユーザーの権限で実行されます。詳細は [こちらの記事](https://qiita.com/samskeyti/items/ed841fad522f636516e1) に記載しました。
ストレージ アカウントの IAM 設定より `ストレージ BLOB データ共同作成者` の権限を該当ユーザーに付与します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307853/f513e819-3a55-f87a-055b-15c8d9fe16ac.png)

### 2. Exce

元記事を表示

Tor Browser を活用して requests (python) してみる話

# はじめに

Apple の [iCloud Private Relay](https://www.apple.com/privacy/docs/iCloud_Private_Relay_Overview_Dec2021.PDF) は素晴らしい(唐突)。
iCloud 課金勢の私も試しに使い始めてみたところ、十分に実用できる性能で感動してしまい、今や常用ユーザーとなってしまった。

この弊害として、自宅のPCからブラウジングしている時に、接続元を明かしてインターネットを徘徊することが、なんとなく裸で外を歩き回るかのような気持ち悪さを感じるようになってしまった(個人の感想です)。

そのような心変わりがあってからか、長年塩漬けにしていた Tor Browser を引っ張り出して来て、最近はプライベートブラウジングしたい時に、Tor Browser を使うようになった。
ここまで神経質になってくると、今度は普段使っている Python Requests モジュールからの通信も、なんとなくプライベートさを出したくなって来てしまった。

ちなみに、 Tor Browser を普段使っている皆

元記事を表示

1.Amazon Web Servicesの基礎知識

AWSクラウドエンジニアのロードマップに沿って、
学習内容をまとめて知識を確立していきたいと思う。

本日は
一周目として
【Amazon Web Servicesの基礎知識について】①

1.Webサーバーとは
2.オンプレミスとクラウドサーバーの違い

以上2点を学習のポイントとしてまとめることとする。

1.サーバーとは

そもそもサーバーとはどんな意味なのか?調べてみると
給仕する人 サービスを提供するといった意味が出た。
ウォーターサーバーも水を提供するものである。

水が欲しいとき、ボタンを押すと、水が出る。
この一連の動きがウォーターサーバーの働きになる。

ウォーターサーバーの話とwebサーバーの話を混ぜて
以下の図を書いてみた。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2653198/a0a7c12a-b5ed-cc00-8c8e-23a62ca76f76.png)

このようにクライアントの要望するリクエストに対して
必要な処置を行うコンピュータをサーバーと

元記事を表示

Python RIFE(AI)を使って滑らかな動きの動画を作成するrife_video

# はじめに
rife_videoは[ECCV2022-RIFE](https://github.com/megvii-research/ECCV2022-RIFE)を使ってフレーム補完をすることで30fpsの動画を60fpsにしたり スローモーション動画を作成するPython用のツールです。動画をドラックアンドドロップするだけで使えるようになっています。
また、別のAIモデル[Super-SloMo](https://github.com/avinashpaliwal/Super-SloMo)を使ったslomo_videoも同梱しています。どちらも同じことができますがAIモデルが異なるので処理速度やクオリティに違いがあります。

# できること
– 30fpsの動画を60fps(2倍)または120fps(4倍)にする
– スローモーション動画を作成する
– 検証用サイドバイサイド動画を作成する

# 処理速度(処理時間)
処理時間はビデオカードの性能で大きく変わります。

元記事を表示

ChatGPTを使いながらRPGゲームを作成する(その4) 敵の配置

### 目標

* モンスターの配置
* モンスターが動く
* モンスターがうようよしている世界を作り出す

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576081/90063381-474d-0eaf-64d8-d4afa99e0ad1.png)

### 状況整理

* 敵を配置するため、Mapを少し広げた
* 異なる種類の敵を3体
* 動きはランダムに

制限:
* 敵とPlayerがぶつかった時の実装はしない
* 敵を倒したら一定時間にMapから出現しない

### 重要ポイント
* モンスターが動くには、Animation機能を導入する
* いろんなモンスターを作り出すためには、Enemyクラスを作成(別ファイル)
* モンスター配置メソッド

### モンスタークラス
* モンスターのサイズとアニメーションの設定
“`py
def __init__(self, **kwargs):
super(Enemy, self).__init__(**kwargs)

元記事を表示

「Python 3.12.2 ドキュメント」を読んでみる その1

# はじめに
 プログラミングの勉強をしようと思っても何から始めたらいいかわからないので、とりあえずQiitaのリンクを辿って、公式リファレンス(ドキュメント?)に目を通すことにしました。この記事はそのメモですが、如何せんプログラミングの知識がほぼない人間の解釈ですので、勘違い、間違い、誤解等多数あるかと思います。

https://docs.python.org/ja/3/tutorial/index.html

# 「1. やる気を高めよう」を読んでみる

https://docs.python.org/ja/3/tutorial/appetite.html

## 用語
超高級言語:
コンピュータが唯一理解可能な機械語(2進数)と人間が日常的に使用する自然言語との間で、人間に理解しやすい方のプログラミング言語
インタプリタ:
ソースコードを1行ずつ機械語に翻訳して実行する
コンパイル:
ソースコード全体を機械語に翻訳する
バイナリ形式:
コンピュータしか理解できない形式(2進数)のデータ

## 概要
・Pythonは単純なものから複雑なものまで、いろいろなプログラムが作れるよ

元記事を表示

Pythonを使って楽天ディレクトリIDを抽出する

## 楽天のディレクトリIDを抽出する
楽天のディレクトリIDを抽出してコンソールに表示させるコード

※楽天ではカテゴリをディレクトリと呼んでいる
### 第一階層のディレクトリIDだけ抽出
“`Python
#楽天ジャンルIDを第一階層を取得して表示する

import requests

RAKUTEN_GENRE_API_URL = ‘https://app.rakuten.co.jp/services/api/IchibaGenre/Search/20140222′

def get_genre(genre_id=0, format_version=2, app_id=’YOUR_APP_ID’):
params = {
‘applicationId’: app_id,
‘formatVersion’: format_version,
‘genreId’: genre_id,
}
r = requests.get(RAKUTEN_GENRE_API_URL, params=params)
ite

元記事を表示

DASHアプリ【その1レイアウト編】

# 概要
DASHはPythonで書かれたウェブアプリケーションフレームワークで、データ分析等にも使われています。グラフやデザインはPlotlyやDash Bootstrap Componentsなどライブラリも使用できるため柔軟にカスタマイズも可能です。順次コードを紹介していくつもりです。今回はアプリについての説明になります。

# アプリの紹介
## Python DASHでリアルタイム通信分析
### 紹介ページ https://note.com/daisuke892/n/naea8b2431860

とりあえずコードの内容は少しづつQiitaがマークダウン形式で書けるので
こちらで紹介していきたいと思います。

DASHの基本的な構文は他のサイトで紹介されているのでここでは割愛します。
今回は全体のレイアウトの説明になります

# 画面レイアウト
BootstrapのGRIDレイアウトで以下の様に画面を分割しています。

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

元記事を表示

【dataiku】「コードも書けるけどツールって使った方がいいの?」を考える趣味プログラマーの金融データ活用チャレンジ

# はじめに
記事を閲覧いただきありがとうございます。

私は金融機関でシステム開発の仕事に従事しております。
データ分析業務やPython言語は共に仕事では未経験ですが、趣味でpythonを使ってものづくりを楽しんでおります。

そしてこの度はsignateで開催されました「第2回 金融データ活用チャレンジ」に参加させていただきました。

今回は様々なツールを提供していただいており、その中でも特に魅力的に感じましたdataikuのすばらしさを記事にして共有したいと思い執筆いたしました。
社内の勉強会でもdataikuの紹介をいたしましたが非常に好評でした。

この記事では
「コード(python)も書けるけどツールって使った方がいいの?」
「自分の普段使っている環境(Anaconda、GoogleColaboratory等)かツールを使うか迷ったけどどっちが良かった?」
のような疑問に自分なりに回答していこうと思います。
ちなみに今回私は普段自分が使っている環境と併用しました。

今後のコンペでもこのようなツールの提供があった場合、使用するかどうかの判断に少しでもお役に立てれば幸いで

元記事を表示

ChatGPTを利用して会話ができるLINEbotを作る

# 概要
今回はchatgptを組み込んで、文章生成をしてくれるlinebotを作ったので、その作り方をこの記事にまとめました。

今回参考にしたのは[こちらの記事](https://qiita.com/michitomo/items/a10465b12bcca32bf63a)。

# 制作環境
Windows
python3.11
pip24.0

## 大体の流れ

1. OpenAIからキーをゲット
2. LINEのBotを作ってキーをゲット
3. Lambdaに関数を作る

# Openaiからkeyを入手
[こちらのリンク](https://platform.openai.com/account/api-keys)から入手できる。

詳しいやり方は
https://qiita.com/kenichiro_ayaki/items/afff43e78e75b0ae8d8a
こちらの記事を参考にしていただきたい。

# Lineのプロバイダ、チャネルを作る
Line Developersを開いてプロバイダを作る。

![スクリーンショット 2024-02-13 145921.png

元記事を表示

逆誤差伝播法による微分のコーディング・ノート#2

## 2体間ポテンシャル実装のテスト
#1に続き,ここではより分子動力学法での応用に近づけるため,2体間ポテンシャルについて逆誤差伝播法(back propagation)を応用した微分のコーディングを紹介する.Morse型ポテンシャルを用い,Pythonでの実装を行う.

## ポテンシャル関数
Morseポテンシャル
“`math
\phi_{ij} := \phi(r) := \varepsilon\{\exp[-2\alpha(r-r_0)] – 2\exp[-\alpha(r-r_0)]\}
“`
を用いる.なお$r$に関する微分は
“`math
\phi'(r) = -2\varepsilon\alpha\{\exp[-2\alpha(r-r_0)] – \exp[-\alpha(r-r_0)]\}
“`

原子$i$のエネルギーは
“`math
E_i = \frac{1}{2}\sum_{j\ne i}\phi_{ij}
“`
で,系全体のエネルギーは
“`math
E = \sum_i E_i
“`
で与えられる.

## 計算の流れ
エネルギーを計算

元記事を表示

ChatGPTを使いながらRPGゲームを作成する(その3)

### 目標
いよいよ壁判定をやります。

### 判定用Mapの準備
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576081/a6f71772-9ab3-f560-054d-5035f06b029d.png)
分かりやすくするため、小さいマップでやります。

### 壁判定でやること
* 壁判定メソッドの作成
* Player移動メソッドの中に壁判定をコールする
→壁の場合、Playerの移動位置は変更しない
→壁でない場合、Playerは移動する

### 状況整理
* MapクラスにはMapデータがある、0が壁、1が床で移動が可能
map_data = [
[0, 0, 0, 0]
[0, 1, 1, 0],
[0, 1, 1, 0],
[0, 0, 0, 0]
]
* map_dataにタイル(タイルサイズ)を張るので、マップサイズはmap_data*tileとなる
* 座標は左下が原点である
* Playerの初期配置は壁の内側とする

元記事を表示

Streamlitについて

お疲れ様です。

今日は「Streamlitについて」について部分いたします。

Streamlitについての簡単な説明と、Streamlit を使う上で私がハマったポイントの紹介をしておきます。

# Streamlit とは

Streamlit turns data scripts into shareable web apps in minutes. All in pure Python. No front‑end experience required.

公式の謳い文句をざっくり訳すと以下の通りです。

– データスクリプトを数分で共有可能な Web アプリにできる
– 全て Python で書けてフロントエンドの知識は必要ない

データスクリプトというのはおそらく`str`や`pandas.DataFrame`などでしょうか。データ分析ではお馴染みの`DataFrame`を雑に渡すだけでテーブル表示をしてくれます。HTML/JS/CSS を書く必要はなく、事前に用意されたコンポーネントを組み合わせてページを作成します。公式のGalleryを見るだけでも、`Stream

元記事を表示

StreamlitがDockerで使えないのを乗り切る

## 症状

streamlitをDockerで動かすとNo such file or directoryとでてしまう。

“`console
# streamlit run app.py

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.

Traceback (most recent call last):
File “/usr/local/bin/streamlit”, line 8, in
sys.exit(main())
^^^^^^
File “/usr/local/lib/python3.11/site-packages/click/core.py”, line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/py

元記事を表示

pythonのライブラリー使ってポモドーロツールを作る

# 概要
:::note info
pythonのライブラリー使ってポモドーロツールを作ります
・PySimpleGUI
・pygame
:::

# アナコンダをインストール
pythonを使うのにanacondaをダウンロードしてインストールします

Free Download

# 環境変数を編集を設定する
windowsメニューで「環境変数を編集」を入力して起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/5a486cdd-9902-3167-61c7-af0107e92764.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771936/8b99ff20-1d06-2834-4a2c-800654503f71.png)
ユーザー環境変数のPathにanacondaのインストールした場所を設定する

Path=

元記事を表示

GIS・人流データに関する簡単なノート

# はじめに

場所的な情報、量的な情報、両者の時間的な情報、それら全てを考慮する必要があるため、GISデータ、人流データ等と呼ばれるデータは、少々扱いが特殊だと感じました。

そのため、自身の学習のノートとしてまとめます。(2024-02-16時点)

また、倫理的配慮から、匿名化されたデータであることが多く、別なデータと一意に結びつける事が難しいため、有用に扱うには、それらを加味した上で有効な方法を検討する必要がありそうです。

私が調べた限り、既存の調査・研究等では、何かしら目的に適した「前処理」をしている(せずに扱う手法を見たことがない)

たとえば以下のようなもの

– 「地理」的な情報を欠落させ、場所はあくまでカテゴリ(名義尺度)として扱う
– 「量や時間」を欠落させ、(移動の)軌跡を抽出する(a→d→b→cの様な)
– 「時間・空間」で丸め、存在する(匿名化され、仮想的な)人の属性データを扱う

扱う事柄、目的を意識せずしては何も出来ない。見たいものを見ることも容易ではないようです。

また、統計で多群を比較する際は留意が必要なよ

元記事を表示

Python によるルート最適化の実践ガイド

# 1. 概要
配送車両が複数の顧客に荷物を届ける際、最も効率的な道順を決定することは、極めて重要なポイントとなります。
この記事では、こうした課題の解消でキーとなってくる「ルート最適化」について、Python プログラミング言語を使いながら説明していこうと思います。

# 2. ルート最適化とは
ルート最適化とは、特定の目的地への移動やタスクの実行において、最も効率的かつ経済的なルートを決定するプロセスです。これは、特に物流、配送サービス、交通計画、営業訪問など、多くの場所に移動する必要がある分野で重要な要素と言えます。ルート最適化の主な目的は、時間、燃料、距離、コストを最小限に抑えることによって、全体の効率を最大化することです。

ルート最適化は、GPS ナビ、経路計画ツールなど、多くのソリューションで利用されています。これにより、企業は配送効率を高め、運用コストを削減し、顧客サービスを向上させることができます。

# 3. 歴史的背景
この問題の起源は1930年代にさかのぼります。当時、学校のバスのルートを数学的に最適化する試みが行われました。これは「巡回セールスマン問題 (Tr

元記事を表示

PuLP を使って最適化で数独パズルを解く

この記事では、Python の強力なライブラリである PuLP を使用して、線形プログラミングで数独の問題を解く方法についてご紹介してきます。

# PuLP とは

PuLP は、線形計画問題(Linear Programming, LP)や混合整数線形計画問題(Mixed-Integer Linear Programming, MILP)など、様々な最適化問題を解くための Python ライブラリです。主に最適化問題のモデリングと解決のために設計されており、Python で書かれた使いやすいインターフェースを提供します。

PuLP の主な特徴は以下の通りです。

1. **使いやすい**: PuLP は Python 言語を使って直感的に数理最適化問題を記述できるように設計されており、Python から簡単に利用することができます。
2. **柔軟性**: 線形プログラミング、整数線形プログラミング、混合整数線形プログラミングなど、さまざまな種類の最適化問題を扱うことができます。
3. **多様なソルバーのサポート**: PuLP は、CBC、GLPK、CPLEX、Gurobi

元記事を表示

OTHERカテゴリの最新記事