Python関連のことを調べてみた2022年02月18日

Python関連のことを調べてみた2022年02月18日

Python – pandasライブラリを使ってCSVファイルを読み込む – 初級編

Pythonには超絶便利なライブラリがたくさん。

今回は、Pandasライブラリを使ったCSV読み込み手順をご説明。
infoは除いたけど、とりあえず最低限これが使えれば、
ファイル読み込み処理の初歩はできますね?

# 1. ライブラリのインストール(入っていなければ)
以下を実行。

“`python
#x.x.xはインストールするバージョン
mamba install pandas==x.x.x -y
#x.x.xはインストールするバージョン
mamba install numpy=x.x.x -y
“`

# 2. Import宣言

“`python
import pandas as pds
import numpy as np
“`

# 3. ファイルの読み込み (read_csv) ※ロードしたに過ぎないので、この後データの読み上げが必要。
csvファイルを読み込むには、read_csvを使います。
pandas.read_csv(ファイルパス, option)で呼び出します。

“`python
import pandas as pds

fi

元記事を表示

[py2rb] 多重継承の4

# はじめに
移植やってます。
( from python 3.7 to ruby 2.7 )
# 多重継承 (Python)
https://qiita.com/superrino130/items/89b58bfb4e89500a8e7c

前回の記事で、多重継承は表現できたものの、継承の継承は表現できていなかったので、やってみた。
# delegate (Ruby)
“`ruby
require ‘delegate’

class Fi
def original_method(*args, **kwargs)
‘original’
end
end

class Se1
def method_missing(method, …)
‘dummy’
end
end

class Se2
def initialize(…)
@c = SimpleDelegator.new(Fi).new(…)
@k =[@c]
end

def method_missing(method, …)
@k.each do

元記事を表示

PythonのEnumの比較結果がなぜかFalseになる

## はじめに

Pythonのunittestを書いていて、同じはずのEnumオブジェクトの比較結果がなぜかFalseになってしまう事象で少し詰まった。結果的に凡ミスだったが、今後ハマる人のために共有しておく。

PythonのEnumやunittestについては詳しく触れないので、気になる人は以下の公式資料を参照すると良い。

https://docs.python.org/3.9/library/unittest.html

https://docs.python.org/ja/3.9/library/enum.html

## TL;DR

importのパッケージ名を揃えれば解決する。

## 問題の再現

以下のようなディレクトリ構成を考える。

“`
enumbug
├── b.py
├── enums.py
└── test.py
“`

各ファイルの中身は以下の通り。

“`enums.py
from enum import Enum

class Color(Enum):
RED = 1
BLUE = 2
GREEN = 3
“`

元記事を表示

【pip+venv】データサイエンス環境構築 ~ JupyterLabの仮想環境の作業ページをすぐ起動できるようにする

# 経緯

Anacondaの商用利用は制限され、仕事で使いづらくなった。
condaの代わりの仮想環境管理ツールは、pip+venvが良いらしい。
そこで、自分用の手順をまとめた。

本手順で、以下のことができるようになる。

– プロジェクトごとに仮想環境を作成
– JupyterLabはショートカットから一発起動
– カーネルは、Jupyterに追加した仮想環境を選択して実行

# 想定環境
– Windows10 Pro
– Python 3.9.x

# 作業手順
## 1.Pythonのインストール
公式ページからダウンロード・インストールする。
https://www.python.org/downloads/
※2022年2月17日時点:今回は最新バージョン(3.10.x)ではなく3.9x.をインストールした。pathlibがインストール出来なかったため。

## 2.ローカル環境の構築
ローカル環境はjupyterlabやpandasなどよく使うパッケージを入れておく。

| **作業内容** | **コマンド**

元記事を表示

Python time.sleepのsleepできるのは最小何秒?

# 結論

**0.01秒**

どっかの記事に0.001秒ってあったけど実際は0.01秒以上スリープさせることはできないのでご注意ください

# 検証

スリープ前後の経過時間と指定値の差を求める。

“`Python
import time

def test(sleep_time):
begin_time = time.time()
time.sleep(sleep_time)
end_time = time.time()
from_begin_to_end = end_time – begin_time
print(f’sleep time: {sleep_time}’)
print(f’end-begin={from_begin_to_end}’)
print(f’誤差: {sleep_time-from_begin_to_end}’,end=’\n\n’)

for sleep_time in [1, 0.1, 0.01, 0.001, 0.0001, 0.00001]:
test(sleep_

元記事を表示

Linux上にPython+Selenium+Chromeの動作環境を構築する

#はじめに
SeleniumとはWebブラウザの操作を自動化できるフレームワークのことです。
本記事ではSeleniumを使う環境の一つとして、Linux上にPython+Selenium+Chromeの環境を構築する手順を紹介します。
#構成
今回使うLinux環境は、以下のようなインスタンスをAWSにて作成しました。

|項目|設定値|
|—|—|
|プラットフォーム|Amazon Linux|
|インスタンスタイプ|t2.micro|

#環境構築
以降のコマンドはデフォルトのユーザ(ec2-user)を使った場合のものとなってます。
###Python3のインストール
まず、yumのアップデートを実行します。

“`
$ sudo yum update
“`
yumのアップデートが完了後、Python3のインストールを行います。
Python3をインストール時に合わせてpip3もインストールされます。

“`
$ sudo yum install python3
“`
なお、Amazon Linuxではデフォルトで`python`コマンドにはPython2の方が

元記事を表示

mac で pyenv で python 3.7.2 がインストールできないとき

社内で発生した問題をみんなで解決しました。メモとして残しておきます。

# 問題
mac で pyenv で python 3.7.2 がインストールできない

“`zsh
$ pyenv install 3.7.2
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.2.tar.xz…
-> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
Installing Python-3.7.2…
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 11.5.2 using python-build 20180424)
“`

# 環境
– macOS Monterey
– zsh

# 解決法
以下の方法

元記事を表示

AIシステムトレード PIX2PIX反省点

https://qiita.com/EasyCording/items/02f6e54d8c133810f097

少しブログの方で取引を進めていて、今のやり方に対する疑問が出てきた。
http://1969681.blog66.fc2.com/

# 現状
いまのところは、為替データを2つに分けて、ペアで学習させている。
wsizeがサンプリング期間で前半64、後半64のデータとなる。
“`main.py
wsize=128 #サンプル期間

def min_max(x, axis=None):
min = x.min(axis=axis, keepdims=True)
max = x.max(axis=axis, keepdims=True)
result = (x-min)/(max-min)
return result

def imagemake(dfspan1,dfspan2):
a = np.array([x for x in dfspan1[‘df’][‘close’]])
b = np.array([x for x

元記事を表示

【OpenHack】AI-Powered Knowledge Mining いけばわかるさ!

# はじめに

みなさん、検索エンジンってつくったことありますか?
私はあります:muscle: そう、**OpenHack**で。

本記事は2月開催OpenHackに参加して得た学びの記録です。

https://openhack.microsoft.com/

​マイクロソフトが力を入れる「OpenHack」とは?11月開催の現場に潜入してみた

## 今回のテーマは AI-Powered Knowledge Mining

OpenHackは8つのテーマに分かれていて、開催回ごとにテーマが変わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/b7c24f6a-0df4-df00-f79a-ae72b28278cf.png)

>AI-Powered Knowledge Mining OpenHackでは、開発者がアプリケーションやサービスにインテリジェントな検索機能を追加し、人工知能を活用してデータから意味のある結果を抽出できるようにします。参加者は、

元記事を表示

海賊版サイト問題で”CDN事業者” が提訴されたので技術的にCDNを考える

# はじめに

出版物の海賊版をネット上で公開したとして逮捕された”漫画村”の事件はみなさん記憶に新しいかと思います。
昨今、ネット上で動画や音楽などさまざまなものを楽しめる時代です。出版物のサブスクというのもくるのではないかといわれています。

以下”海賊版”のWikipediaより一文引用します。

>海賊版(かいぞくばん)は、法律上の権利を無視して諸権利を有しない者により権利者に無断で発売または流通される非合法商品である。

権利の生じているものを無断でネット上に公開することは確かに問題だと思います。

ただ、この問題はここで止まりませんでした。
まずは以下の記事を読んでみて欲しいです。(無料公開部分だけでも良いかと思います。)

https://www.asahi.com/articles/ASQ2J4FDJQ2BUTIL068.html

“小学館、集英社、講談社、KADOKAWAの大手出版4社”がCDN事業者を提訴するに至りました。今回、この問題を技術的に考えてみたいです。

# モチベーション
背景として、私はインターン生時代にCDNを使って某コンテンツを配信しておりま

元記事を表示

VRChatでOSCやーる(Python3.9、Windows10)

# はじめに
VRChatがOSC対応とのことでやっていくー

# 開発環境
– Windows10 PC
– VRChat
– TouchOSC
– Python3.9
– python-osc
– protokol-0.4.4.86-win64.exe

# 導入
1.Steamを開き、VRChatのプロパティ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/9e334d05-0645-8296-cf17-188059fb7a7e.png)

2.open-betaを選択し、VRChatを起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63863/8560b3c7-c801-b156-d904-1cc91d3e0539.png)

3.rでメニュー開き、Optionsを選択
![image.png](https://qiita-image-store.s3.ap-nort

元記事を表示

レコメンド指標でよく見るMAP@kとは

## 概要
– レコメンドでよく使われるメトリクスである**Mean Average Precision (MAP)**について解説する
– MAPについて説明する前にまず前提条件として**Precision@k (P@k)**、**Average Precision @k (AP@k)** についても説明する

## 問題設定
– 正解を予測して並べた5個 (k=5)のデータのうち何個正解できたかを考える
– 例えば5個並べた商品のうち、実際にクリックされたのはどれだったか

– 以下の例だと1番目と4番目を正解したことになる
– これを評価するメトリクスを考えたい

スクリーンショット 2022-02-17 0.27.56.png

– 単純に5個中何個正解できたかを考えてみる (2/5)
–  でも同

元記事を表示

MLflow Projects と Tracking を同時に使う

[MLflow](https://www.mlflow.org/) の [Projects](https://www.mlflow.org/docs/latest/projects.html) は実験の再利用をしやすくするためのツールで、 [Tracking](https://www.mlflow.org/docs/latest/tracking.html) はパラメータや計量を記録するためのツールです。それぞれを紹介している記事はよく見るものの、合わせて使っている記事を見かけなかったのでやり方をメモしておきます。

## tl;dr

`mlflow run` で起動した run ID を Tracking でも使用するようにします。そのためには環境変数 `MLFLOW_RUN_ID` を使います。

## 確認した環境

– Python 3.9.10
– mlflow==1.23.1

## 動かし方

以下で動かすサンプルコードは GitHub の[このリポジトリ](https://github.com/pn11/MLflow-Projects-and-Tracking)にあり

元記事を表示

「新・明解Pythonで学ぶアルゴリズムとデータ構造」で勉強日記#11

【出典】[「新・明解Pythonで学ぶアルゴリズムとデータ構造」](https://www.amazon.co.jp/%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0-%E6%96%B0%E3%83%BB%E6%98%8E%E8%A7%A3%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E6%9F%B4%E7%94%B0%E6%9C%9B%E6%B4%8B/dp/4815603197/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1BG3JS7CKMZA0&keywords=Python%E3%81%A7%E5%AD%A6%E3%81%B6%E3%82%A2%E3%83%AB

元記事を表示

pandas DataFrameの条件にあてはまる値のindexとcolumnを取得する方法

# はじめに
Excelだと条件に当てはまるcellに何かしらの変更を加えるのは簡単
なのにpandas dataframeだと直感的な関数がない!
ということで二通りの方法を考えてみました

#サンプルデータ
“`python
import numpy as np

timestep = [[np.random.randint(2) for _ in range(9)] for __ in range(3)]
index = [f’station{i}’ for i in range(3)]
columns = list(map(str, np.arange(9)))
df = pd.DataFrame(timestep, index=index, columns=columns)
“`

サンプルデータは0と1のみで構成されたデータフレームです

# 1. 全探索型
“`python
ls = []
for i in df.index:
for j in df.columns:
if df.at[i,j] == 1:

元記事を表示

超絶簡易版wordle

超絶簡易版wordleのpythonコード
メモ的な

“`simplewordle.py
import hashlib

print(“please question key”)
key = str(input())
#keyはドラクエで言う復活の呪文みたいなもの
#適当な英単語(5文字でなくてもいい)を入力してください

print(“guess the word”)
guess = str(input())
#guessには回答を英単語5文字で回答してください
#英単語5文字じゃないと多分バグります

wordlist = [“apple”,”brood”,”candy”,”drive”,”enter”]
#答えになる単語のリスト

hs = hashlib.md5(key.encode()).hexdigest()
hs2 = int(hs,16) % len(wordlist)
answer = wordlist[hs2]

guessls = list(guess)
answerls = list(answer)

ret = “”

for i in range(5):

元記事を表示

Pythonで証券コードから会社名の取得(Edinetコードリストを利用)

## Edinetコードの読み込み

PythonでEdinetコードリストから証券コードと会社名を読み出せるようにします。
Edinetの[EDINETタクソノミ及びコードリスト](https://disclosure.edinet-fsa.go.jp/E01EW/BLMainController.jsp?uji.verb=W1E62071InitDisplay&uji.bean=ee.bean.W1E62071.EEW1E62071Bean&TID=W1E62071&PID=currentPage&SESSIONKEY=1645101977516&downloadFileName=&lgKbn=2&dflg=0&iflg=0)にあるコードリストダウンロードし、zipファイルから`EdinetcodeDlInfocvs`を保存します。
このファイルは先頭行に「ダウンロード実行日」の記載があり、2行目に項目行、3行目以降に会社名や証券コードの記載があります。
このため、`Pandas.DataFrame.csv_read`だと、うまく読めなかったため、`csv.reader`を使い読み

元記事を表示

Githubのリポジトリをフォルダツリーにしてみた

[Svelte Tutorial](https://svelte.jp/tutorial/svelte-self)にフォルダツリーを表示させるセクションがあったので、Github のリポジトリを適応させてみました。

## Svelte Tutorial の構成

![img1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2172563/19a40523-b04c-9deb-318a-314001dd72f2.png)

チュートリアルの構成は以下のようになっています。

“`
├─Folder.svelte
├─File.svelte
└─App.svelte
“`

`root`変数にフォルダツリーを作成するためのオブジェクトが格納されています。データとして扱いづらいですがこのままのフォーマットで行きます。

“`svelte:App.svelte