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

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

pythonのclassとか__init__とか

参考

https://python.ms/class/#%E3%81%AF%E3%81%97%E3%82%99%E3%82%81%E3%81%AB

“`
>>> class Human:
… name = ‘andi’
… def say(self):
… print(‘こんにちは!’)
… def friend(self):
… print(‘judi’)

>>> i = human()
Traceback (most recent call last):
File ““, line 1, in
NameError: name ‘human’ is not defined. Did you mean: ‘Human’?
>>> i = Human()
>>> i.say()
こんにちは!
>>> i.friend()
judi
“`
追加も可能
“`
>>> i.height
Traceback (most recent call la

元記事を表示

スルッとKANSAIエリアの最長片道経路を求める 【その2】

([【その1】](https://qiita.com/hamanasu/items/1edbf64c52cd5c71ac5d) からの続き)

## 4. 最長片道経路の算出
### 4-1. 最長片道経路の算出に用いるコード(スクリプト)
 
 最長片道経路の特定に用いるコードは以下の二つ。

JNOT様のコード( https://note.com/jnot/n/nd2c9469e4fd8 )
■探索エリアにおける最長片道経路の始点と終点を求めるコード
■探索される経路はいわゆる「L型」のルート(そのため、「P型」「O型」のルートの確認作業が必要)
■途中経路は表示されない

Psyduck様のコード( https://psyduck-take-it-easy.hatenablog.com/entry/2018/06/17/222824 )
■始点・終点を指定するとその間の最長一筆書き経路を提示してくれるコード
(Psyduck様が公開しているコードにも、探索エリアにおける最長片道経路(経路タイプはL型/O型/P型を問わない)を見つけるコードがあると思われるのですが、現段階で私は使い

元記事を表示

【python】2010年小樽商科大の整数問題をプログラミングしてみた。

# はじめに
小樽商科大学の入試問題にプログラミング題材にふさわしい問題があったので、pythonでプログラミングしました。

## 問題
> 2010!は2で何回割り切れるか。
> 出典 2010年小樽商科大学

## プログラミングしたコード
“`python
# 小樽商科大2010年の入試問題
# 2010!は2で何回割り切れるか

# 2で割り切れるだけ割り切り、割り切った回数を返す関数
def two_div(num):
two_div_count = 0
while num % 2 == 0:
two_div_count += 1
num /= 2
return two_div_count

# メイン関数
def main():
# 階乗を表す変数
N = 2010
# 解答を表す変数
two_div_ans = 0
for i in range(1,N+1):
ans += two_div(i)
print(two_div_ans)

if __name__ == “__main__”:
main()

元記事を表示

PyFileSystem2 のリスト系メソッドまとめ

# 概要

[PyFileSystem2](https://docs.pyfilesystem.org/) のリスト系のメソッドの使い分けに毎回混乱するのでメモしておく。

# 結論

| 階層辿るか | メソッド | 型 |
|——-|—————————-|—————————————————-|
| – | `listdir(‘.’)` | `list[ベース名]` |
| – | `scandir(‘.’)` | `Generator[Info]` |
| – | `glob(‘*’)` | `Gen

元記事を表示

【Python】型アノテーションを知ってますか?

## はじめに
型アノテーションに関しての備忘録。

## 🦁**結論**🦁
引数と戻り値の型を指定することで、関数の動作がより明確になる。他の言語では絶対に必要の言語も多々ある。

:::note info
押さえておくべき点
* 関数の引数の型、returnの型をメモしておけるイメージ。
* 型が違くてもエラーにはならない。
* 複数の型も指定できる型がある
* 辞書、リスト、タプルなどの型もある。
* mypyを使うことで型のチェックができる
:::

:::note alert
注意点
* 型アノテーションは変換などをするわけではないのでエラーはでない。
* 過度に複雑な型アノテーションは可読性を下げる可能性があるため、適切なバランスが重要。
:::

## **一覧**

## ** 1. int – 整数型**
「年齢を表す数字」のように、カウントできるものや数えるものに使う
“`py
def get_age(age: int) -> int:
return 30
“`

##

元記事を表示

データサイエンスのためのTeradata入門: Script Table Operator(データベース上でのスクリプト実行)

# この記事について

Teradataデータベースの独自機能である、Script Table Operator (STO) について紹介します。
これは、データベースのあるサーバー上で直接スクリプトを実行する機能です。
データベース上のデータの処理方法をスクリプト言語で実装するため、柔軟性と効率性を両立することが可能になる、応用範囲の広い機能です。

:::note
実行コードは、[日本テラデータGitHub](https://github.com/Teradata/teradata-japan/blob/main/tutorial/4.1_InDB-training-house-price.ipynb)にて公開中しています。
このコードは無料のTeradata環境 [ClearScape Analytics Experie

元記事を表示

データサイエンスのためのTeradata入門: In-DB分析機能による回帰分析

# この記事について

Teradataが独自拡張したSQL関数を用いて回帰分析の学習・予測を行う方法を紹介します。
これは、機械学習の学習から推論までを全てデータベース上で実行する、珍しい機能です。
分散データベースの処理に最適化された関数を用いるため、高い効率性を実現します。

:::note
実行コードは、[日本テラデータGitHub](https://github.com/Teradata/teradata-japan/blob/main/tutorial/4.1_InDB-training-house-price.ipynb)にて公開中しています。
このコードは無料のTeradata環境 [ClearScape Analytics Experience](https://clearscape.teradata.com) にて実行可能です。
:::

## 要点

– TeradataのIn-DB分析関数により、線型回帰モデルを学習・予測
– 機械学習モデルの学習・デプロイ・推論の全てをデータベース内で完結

# Teradata In-DB分析関数

この記事では線型

元記事を表示

データサイエンスのためのTeradata入門: 学習済み機械学習モデルによる推論(Bring-Your-Own-Model)

# この記事について

Teradataの[Bring-Your-Own-Model](https://docs.teradata.com/r/Enterprise_IntelliFlex_Lake_VMware/Teradata-VantageTM-Bring-Your-Own-Model-User-Guide/Welcome-to-Bring-Your-Own-Model)機能を紹介します。
これは、学習した機械学習モデルをTeradataデータベースに取り込み、データベース上のデータに適用し推論を実施する機能です。
この記事では、lightgbm, scikit-learn, tensorflow の3つのライブラリで学習したモデルを例に、この機能の実装を紹介します。

:::note

元記事を表示

データサイエンスのためのTeradata入門: PythonからTeradataへの接続方法3つ

# この記事について

テラデータの提供するPythonライブラリと、それらを使ってPythonからTeradataへ接続してデータを操作する方法を紹介します。

:::note
実行コードは、[日本テラデータGitHub](https://github.com/Teradata/teradata-japan/blob/main/tutorial/1.1_teradata-from-python.ipynb) にて公開中しています。
このコードは無料のTeradata環境 [ClearScape Analytics Experience](https://clearscape.teradata.com) にて実行可能です。
:::

## 要点

– [teradatasql](https://pypi.org/project/teradatasql/), [teradatasqlalchemy](https://pypi.org/project/teradatasqlalchemy/), [teradataml](https://pypi.org/project/teradata

元記事を表示

jsonをPythonで扱う方法

jsonとは

jsonとは、javascriptのデータフォーマットをもとにしたデータの持ち方のこと
jsonは{}と[]でデータを表している

jsonのまま表示させる

~~~py
obj = {“item”:”りんご”,”price”:120}
#jsonのデータを作成している
json_text = json.dumps(obj,ensure_ascii=False)
#dumpsを使うことでjson形式へ変換
#ensure_ascii=Falseで「りんご」を日本語表記にできる
json_text
~~~

jsonをリスト化させる

~~~py
text ='{“id”:123,”is_student”:true}’
#textの中へjson形式のデータを格納
obj = json.loads(text)
#loadを使うことでデータを辞書型として取り出せる
print(obj)
~~~

参考)https://www.youtube.com/watch?v=WsenyJ18ykU

元記事を表示

Pythonで「pathlibモジュールを使ったファイルの読み書き」の動作を確認してみた

# 概要

Pythonで「pathlibモジュールを使ったファイルの読み書き」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/python/file/index12.html

# 実装
以下のファイルを作成しました。
“`sample.py
import pathlib

p = pathlib.Path(‘./test/name.txt’)
data = p.read_text()

print(data.split(‘\n’))
“`
“`test/name.txt
Yamada
Andou
Takahashi
“`

以下のコマンドを実行しました。
“`
$ python3 sample.py
[‘Yamada’, ‘Andou’, ‘Takahashi’, ”]
“`

# まとめ

何かの役に立てばと。

元記事を表示

pyenv-virtualenvでanaconda/miniondaライクな環境を作ろう!!!

# 0.目的
anaconda/minicondaが商用利用では有料になり扱いにくくなったため、pyenv-virtualenvでpython環境を構築できる様にする。

# 1.pyenv-virtualenvとは
pythonのバージョン管理をするpyenvとモジュール管理するvirtualenvをあわせたパッケージ

# 2. インストール可能なpythonのバージョン一覧
“`
$ pyenv install -l
“`
anacondaやminicondaも含まれているがビジネス目的では現在有料なので利用時には注意

# 3.pyenvのインストール
“`
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.bashrc
$ echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.bashrc
$ echo -e ‘if command -v pyenv 1>/dev/nul

元記事を表示

不動産情報ライブラリAPIを使ってみる!

# はじめに

不動産情報ライブラリをご存知ですか?

[不動産情報ライブラリ](https://www.reinfolib.mlit.go.jp/)

> 不動産情報ライブラリとは、不動産の取引価格、地価公示等の価格情報や防災情報、都市計画情報、周辺施設情報等、不動産に関する情報をご覧になることができる国土交通省のWEBサイトです。
(公式サイトより)
>

主に不動産に関連する情報を提供しているサイトです。
APIも提供しているので、試し打ちして遊んでいきたいと思います!

APIのアクセスキーはこちらのお問い合わせから申請することで、通常5営業日以内に対応していただけるそうです。
[不動産情報ライブラリ](https://www.reinfolib.mlit.go.jp/api/request/)

:::note warn
2024年4月8日現在、APIキーが5営業日以内に発行できない場合があるそうです。
:::

# 実際に遊んでみる
## 前準備
Postmanを使用してAPIを叩いていきます。
Postmanの使用方法は調べたらいくらでも出てくると思うので、そちらをご確

元記事を表示

【ドルコスト平均法】この20年のあゆみ;JT、NTT、トヨタ、そして郵政🎵

やはり、実際のデータで20年前にNISA始めていたら、実際は、NISA(少額投資非課税制度)は、2014年1月にスタートしました。なので、今回はある意味架空のお話です。

### 実データを利用するためのコード

“`real.py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
from pandas_datareader import data
import yfinance as yf

import statsmodels.api as sm
from statsmodels.tsa.seasonal import STL
“`

データ取得関数

“`get_stock.py
def get_stock_yf(stock,start,end):
df = yf.download(tickers=stock, start=start, end=end)

元記事を表示

pytorchのregister_forward_hook()の設定はモデルをdeepcopyしても引き継がれないぞという話

## pytorchのregister_forward_hook()の設定はモデルをdeepcopyしても引き継がれない
気づくのに丸1日費やしたため,躓く人を減らすために書く.

### 何をしていたか
とある深層学習モデルの研究のために,一度学習し終わったモデルをcopyライブラリのdeepcopy関数を使って複製し,モデルを再び学習させようとしていた(ファインチューニング).しかしモデルの一回目の学習に問題は起きないものの,モデル複製後の学習は損失関数が発散して学習ができなかった.

### 原因
どうやらモデル複製前に設定していたregister_forward_hookが解除されているらしい.register_forward_hookとはモデルの中間層の入出力を引数にした任意の関数を設定できるというものである.私のプログラムではこれを利用してモデルの中間層の出力を抽出し,損失関数の計算に使っていた.

しかし,モデルをdeepcopyするとregister_forward_hookの設定が消えるようで,保存されるはずの中間層の出力が保存されず,誤差逆伝搬によって下手な勾配が入

元記事を表示

Pythonでわかる予習シリーズ算数

~~~
import matplotlib.pyplot as plt
# 水そうに赤い金魚と青い金魚が合わせて17匹います。赤い金魚は青い金魚よりも5匹多いです。青い金魚は何匹いますか。
x+5+x=17
x=6

# ベクトルの始点と終点の座標
x1, y1 = 0, 0
x2, y2 = 6, 0
x3, y3 = 0, 1
x4, y4 = 6+5, 0

# ベクトルをプロット
plt.quiver(x1, y1, x2, y2, angles=’xy’, scale_units=’xy’, scale=1, color=’blue’, label=’Blue Vector’)
plt.quiver(x3, y3, x4, y4, angles=’xy’, scale_units=’xy’, scale=1, color=’red’, label=’Red Vector’)

# 軸の設定
plt.xlim(-1, 17)
plt.ylim(-1, 3)

# 軸ラベルの追加
plt.xlabel(‘X’)
plt.ylabel(‘Y’)

# グリッドの表示
plt.gr

元記事を表示

バスケット分析・アソシエーション分析

## バスケット分析
バスケット分析(Market Basket Analysis)は、顧客が一緒に購入する商品のパターンを発見するために使用されるデータマイニング技術です。小売業やECでよく利用され、商品の配置、プロモーション、クロスセリング戦略の最適化などに役立ちます。購入履歴データを基に、「もしAを買うなら、Bも買う可能性が高い」という規則(アソシエーションルール)を見つけ出すことです。

クリックストリームデータやウェブログデータを分析することで、オンライン上での顧客の行動パターンを把握し、パーソナライズされた商品推奨やウェブサイトの最適化に役立てられています。

## 主な指標

| 指標 | 説明 |
|—————|————————————————————————-

元記事を表示

『スルッとKANSAI』の最長片道経路を求める 【その1】

 『スルッとKANSAI』エリア内の最長片道経路を求める。
 『スルッとKANSAI』はほぼ全ての関西私鉄が有効エリアに含まれているため、この経路は実質的に”関西私鉄網の最長片道経路”といっても良いかもしれない。

 概要については以前noteに投稿したが、こちらではスクリプトなどより技術的情報についても記述する。

## 1. スルッとKANSAIの最長片道経路

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3325469/671c7871-d06a-addd-24e3-02a6f6e682b6.png)
 『スルッとKANSAI』は近畿圏を中心とした鉄道・バス事業者で構成するスルッとKANSAI協議会が展開していた磁気式共通乗車カードシステムで、2018年まで2府7県で約1,500kmの鉄道路線への乗車が可能だった。
 また、2016年まで*は『スルッとKANSAI 3dayチケット』や『スルッとKANSAI 2dayチケット』等、スルッとKANSAIエリア内のフリーきっぷ(周

元記事を表示

PySceneDetect:シーン単位で分割できるPythonライブラリ

# はじめに

– 映画の予告編のカット割り数を研究したい
– 本記事では、pythonを使用して動画ファイルのカット変更タイミングの検出を行います

# PySceneDetectとは?

PySceneDetectは、動画からシーンの変更点を検出して、それに基づいて動画をシーン単位で分割することができるPythonライブラリです。このツールは、動画編集や分析、コンテンツ管理などに応用されています。

https://www.scenedetect.com/

## 例

ライブラリをインストールします。

“`python
!pip install scenedetect
“`

該当の動画ファイル(`input_video.mp4`)を置き、処理を実行します。

“`python

# 必要なライブラリをインポート
import cv2
from scenedetect import VideoManager
from scenedetect import SceneManager
from scenedetect.detectors import ContentDetec

元記事を表示

有理数をビット演算する(?)

~~はいちょっと今緊急で記事書いてるんですけども。~~

本来この記事は来年か再来年の国際ビット演算デー[^IDBO]のために温めていたネタなのですが、とある事情で急いで形にしています。

この記事ではビット単位の論理積、排他的論理和、論理和の演算子にそれぞれ $\wedge$、$\oplus$、$\vee$ を使用します。

[^IDBO]: ちなみにそんな日はない。

## 先に狂われたら立つ瀬がない

Anarchy Golf というコードゴルフサイトに、単位分数同士の二項演算をして単位分数を答える問題が出題されていました(私がこれを知ったのは 4 月 2 日だけどもうちょっと前から公開されていたっぽい?)。

http://golf.shinh.org/p.rb?I+like+unit+fractions

問題はその中に四則演算だけではなくどう見てもビット演算な演算子もあってオイオイオイ。表題みたいなこと考える変態が俺以外にいるとか信じたくないのですが、世界は思ったよりも狂人に満ちているようです。

そんなわけで急いで有理数に対するビット演算というアイデアを具現化します。鉄は

元記事を表示

OTHERカテゴリの最新記事