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

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

ミスチル30周年どれだけ盛り上がっているか確認してみた

ミスチルが **2022年5月10日にデビュー30周年!**
何かやりたいなと思い、Mr.Children x Ftibit のネタ投稿です。
私が過去に参加したライブのどの曲の時に一番盛り上がっていたのか?
Ftibit APIを使って自分の心拍数で確認してみました。
自分の心拍数なのであくまで個人的な見解です(^^;)

Qiita的には Python x matplotlib グラフ表示にチャレンジしてみました編です(^^)

## 目次

私が運よく参加できたライブは以下の4つ。平常時も加えて5つの心拍数で比較してみます。

* Thanksgiving 25(東京ドーム)
* Thanksgiving 25(広島 エディオンスタジアム)
* Against All GRAVITY(愛知 ナゴヤドーム)
* 半世紀へのエントランス(福岡 PayPayドーム)
* 平常時

では、さっそくいきます!

### Thanksgiving 25(東京ドーム)

2017年6月29日:東京ドーム参加

以下が当日の私の17時から21時までの心拍数のグラフです。

![image.png

元記事を表示

Python における分散処理を利用したプログラムの高速化の検討

### Python における分散処理を利用したプログラムの高速化の検討

#### 前置き

* Python ではマルチスレッド、マルチプロセスを使用して分散処理ができる。
* しかし、Python (cpython) のマルチスレッド処理では、
(いくつかの例外を除いて) グローバルインタプリタロック (GIL) が発生するため、
実際には並列にタスクが実行されないことに注意する必要がある。
* マルチプロセスでは、GIL は発生しないが、プロセス間通信 (タスクの入出力データ) のオーバーヘッドを考慮する必要がある。

#### 実験内容

1. 次のサンプルタスクを一定数用意する。
* タスク1: ループ
* 特徴:
* グローバルインタプリタロックがかかる処理がタスクのほぼ全体を占める。
* タスクの入出力データサイズは小さい。
* タスク2: ランダムバイト列の生成
* 特徴:
* グローバルインタプリタロックがかかる処理がタスクのほぼ全体を占める。

元記事を表示

AtCoder Beginner Contest 250 参戦記

# AtCoder Beginner Contest 250 参戦記

## [ABC250A – Adjacent Squares](https://atcoder.jp/contests/abc250/tasks/abc250_a)

4分半で突破. 書くだけ.

“`python
H, W = map(int, input().split())
R, C = map(int, input().split())

result = 0
if R != 1:
result += 1
if C != 1:
result += 1
if R != H:
result += 1
if C != W:
result += 1
print(result)
“`

## [ABC250B – Enlarged Checker Board](https://atcoder.jp/contests/abc250/tasks/abc250_b)

9分半で突破. 書くだけ.

“`python
N, A, B = map(int, input().split())

元記事を表示

discord.pyのボタンでページ機能を作る

# 必要なもの
discord.py(^2.0.0)
“`sh
pip install git+https://github.com/Rapptz/discord.py
“`
# コード
## まずはボタンの追加から
[と思ったけど僕が説明するよりいいのがあるのでそちらを見てもらったほうが良い](https://qiita.com/mokutan_hibiki/items/b40217e6f2840257374a)
## 実装
button.py
“`py

import discord

class PageButton(discord.ui.View):
def __init__(self,emb,styles=[discord.ButtonStyle.blurple,discord.ButtonStyle.blurple,discord.ButtonStyle.danger,discord.ButtonStyle.blurple,discord.ButtonStyle.blurple],args=[“⏪”,”◀️”,”⏹”,”▶️”,”⏩”],ids=[“first

元記事を表示

ROC 曲線

# ROC曲線のテンプレート
– 自分用に作成している勉強用・備忘録のノートです。
– 専門的な内容は有りません。
– 間違いなどが有りましたらコメントよろしくおねがいします。

目的:
– コードのテンプレート化

## とりあえず実装(statsmodels)
ここでは、statsmodelsのライブラリを用いて実装。

### まず必要なライブラリの読み込み

“`python
import numpy as np
import matplotlib.pyplot as plt

# ROC 曲線を描くためのライブラリ
from sklearn.metrics import roc_curve
# AUC を求めるためのライブラリ
from sklearn import metrics
“`

### データを準備

“`python
# 特別ソートなどは必要ない
# 正解ラベル
y_true = [0, 0, 0, 0, 1, 1, 1, 1]
# 予測スコア
y_score = [0.2, 0.3, 0.6, 0.8, 0.4, 0.5, 0.7, 0.9

元記事を表示

M1 mac Anaconda 「NotWritableError」が出る

M1 mac Anaconda
NotWritableErrorを直す

`sudo chown -R ?? /Users/??/opt/anaconda3`

??にユーザーネームを入力(`id -un`で確認可能)
後半の部分はanacondaがインストールされているディレクトリのパスです。
中に「Anaconda Navigator.app」が入っているディレクトリで間違いないと思います。

元記事を表示

ゼロから作る物体検出(object detection)

## はじめに

「[ゼロから作るdeep learning 3――フレームワーク編](https://www.oreilly.co.jp/books/9784873119069/)」で解説されたdeep learningのフレームワーク[DeZero](https://github.com/oreilly-japan/deep-learning-from-scratch-3)を使って、物体検出を行います。

本記事のプログラムと使用したデータセット(画像とアノテーション)はこちらからダウンロードできます。

https://github.com/takanashiyoruyoru/dezero_sample/tree/main/object_detection

Dezero自体がpytorchと似ているので、Dezero部分を書き換えるとpytorchでも使えます。(pytorchを使ったほうが便利な機能が多数), tensorflowはワカリマセン。

実際の検出例がこちら。
![ダウンロード (1).png](https://qiita-image-store.s3.ap-n

元記事を表示

seleniumでリンク(aタグ)をクリックできないときの対処

## やりたいこと
seleniumを利用してのウェブスクレイピング。
リンクをクリックしてリンク先へ遷移したいだけなんです。

## できなかったこと
ターゲットとする要素を、文字列指定で特定し、クリック。
しかし、何も起こらず、静かに時を刻むだけ・・・

“`python:
from selenium import webdriver

browser = webdriver.Chrome((r’C:\Users\[ユーザ名]\chromedriver.exe’)
browser.get([目的のURL])

element_target = browser.find_element_by_link_text([ターゲットとする文字列])
element_target.click()
“`
念のため[find_elements_by_link_text]で検索し要素数を確認しても1つだったため、別のお門違いのリンクをクリックしているわけでもなさそう。

「aタグからjavascriptを実行させる」ようになっている場合は、クリックが動作しない場合があるようですが、今回はそのよう

元記事を表示

Selenium(4.1.3)のまとめ書き

# はじめに
どうも。最近Selenium 4.1.3(Python 3.9.7)をよく使っていたので、そのときに気づいたことなどをまとめました。

# 注意事項
スクレイピングしている方ならご存知だと思いますが、念のため置いておきます。
[岡崎市立中央図書館事件](https://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6)

# ドライバーはwebdriver_managerを使用する
バージョンが変わるごとにドライバーを入れ替えるのは大変ですよね。
そこで役立つのが、この**webdriver_manager**です。
“`
pip install webdriver_manager
“`

Chromeのドライバーを入れたい場合、このように記述します。

“` python
from selenium import webdriver
from webdriver_manag

元記事を表示

pythonでn文字ずつ取り出す

まず例として、abcdefghijklの12文字を3文字ずつ取り出す(すなわち3文字ずつ区切って表示する)方法をpythonコードと共に解説。

# 3文字ずつ取り出すpythonコード

“`
>>> s = ‘abcdefghijkl’
>>> i = 0
>>> j = 3
>>> for _ in range(len(s) // 3):
… print(s[i:j])
… i += 3
… j += 3

abc
def
ghi
jkl
“`

`j`の初期値、`range`の中の割る数、`i`と`j`のインクリメントに現れる**3**という数字は、**3**文字ずつ区切るというところから来てる。
![block_size_ok.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2659122/4d8370f6-5e18-2ba2-c53e-719a18ff8b80.jpeg)

# 32文字ずつ区切って表示する

『詳解セキュリティコンテスト CTFで学ぶ脆弱

元記事を表示

面倒なことはPythonにさせちゃおう

# この記事を書こうと思ったのは
エンジニアとして人生をスタートさせましたが、参画しているプロジェクトではエクセルとかCSVを扱います。

資料作成に使ったり、新規ファイルを作ったりと手作業でやるのは正直なところ面倒で、本来の作業のためのオーバーヘッドを減らそうと色々ツールとか作成してきました。

そんな経験があるみなさんの役に立てればと思って、書いていこうと思います。

## ひとまずファイルを作ってみよう
フォルダ構成はpythonフォルダを作成して、以下のようにしてみましょう。
“`
python
┗ script.py
“`
そして、script.pyのファイルに以下のコードを書きます
“`Python
import pandas as pd

df = pd.DataFrame()
df.to_csv(‘sample.csv’) #python/sample.csvが作成される
“`
これだけでsample.csvファイルが作成できます。

※作成後のフォルダ構成
“`
python
┣ sample.csv
┗ script.py
“`

## まとめ

元記事を表示

pythonで簡易サーバを立てて簡単にファイル転送

FTP、HTTP、SMBサーバを簡単に立ち上げる。さらにそれを使って簡単にファイル転送する。

リバースシェル間でのファイル転送にすごく便利。

特に良い点が、`-d`オプションを使ってどこからでも任意のディレクトリをシェアフォルダにできるということ。

# FTPサーバー

`pip install pyftpdlib`でインストール。

https://github.com/giampaolo/pyftpdlib

カレントディレクトリをシェアフォルダとして、21番ポートで、anonymousアクセスに書き込み権限を与えるならば

“`
python3 -m pyftpdlib -w -p 21
“`

(ポートを指定しない場合のデフォルトポートは2121)

/opt/PEASS-ngをシェアフォルダにしたい場合、わざわざそこに移動しなくてもカレントディレクトリ上で次のように`-d`オプションを使えばよい

“`
python3 -m pyftpdlib -w -p 21 -d /opt/PEASS-ng
“`

## FTPとファイル転送

まずftpサーバに接続:

元記事を表示

AWS Lambda Powertoolsで実現する快適Lambda生活

# TL:DR
AWSでサーバレス開発を初めて早1年強、毎回関数コードにLoggerやX-Rayのコードを埋め込むのに疲れ始めていました。
そんな折に発見したLambda Powertools(Python)が非常にお手軽かつ便利そうだったので使ってみました。

# AWS Lambda Powertoolsって何?
[GitHubのProject](https://github.com/awslabs/aws-lambda-powertools-python)より引用
> A suite of Python utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, and more. (AWS Lambda Powertools Java and Typescript is also available).

上記からも分かるように、Lambda関数実行時のトレーシング、ロギングをベストプラクティスに沿う

元記事を表示

データを入れるだけで簡単にそれなりの予測をするライブラリを作る(2022.5.9)

# 背景:AutoMLを作りたい
機械が得意な事は機械に任せたい私は、データを入れるだけで上手い具合に処理してくれる物を作りたいと思っています。だいぶ前からAutoMLの存在を知っていて、それを理解して作りたいと前々から思っていました。機械的に処理すると言っても、それを作っているのは人間なので結局、人間的な物になるんだと思っています。要は作る人間がどこまで考え抜いているかだけの違いで、単にすごい物を作りたいのか、人間が安全に使える物を作りたいのかに振られやすいと思います。
# 方法:GitHubにあげて使える様にする
今回実装するのは、LightGBMとLabelEncoding, K-Foldです。ライブラリはそのまま使います。メソッドは、1.説明変数と目的変数のリストを抽出する「devide_tr_ob関数」、2.全てのカテゴリカルデータをラベルエンコーディングする「MyLabelEncoding関数」3.データをK-Foldで分割するしLightGBMのデータセットに収める「LGBM_K_DataSet関数」4.学習を行う「LGBM_train関数」の4つを用意しました。よろしけ

元記事を表示

Ethereumのアドレス生成過程の理解のためにPythonでハッシュ関数keccak256を試す

# はじめに
仮想通貨のウォレットを持っていると、不規則な長い文字列をよく見ると思います。
Ethereumで使われるアドレスの生成過程について調べている中で、下記のような記述を見つかりました。

1.秘密鍵からECDSAで公開鍵(64バイト)を生成
2.公開鍵をハッシュ関数Keccak-256に通し文字列(32バイト)を得る
3.最初の12バイトを消し20バイトのアドレスになる
4.そのアドレスにprefixの0xを加えることで最終的なアドレスを得る(0x5eD8Cee6b63b1c6AFce3AD7c92f4fD7E1B8fAd9F)

参考:[秘密鍵から公開鍵そしてアドレスが生成されるまでの流れ【仮想通貨】](https://zoom-blc.com/from-private-key-to-address)
keccak256がどのような関数なのか確かめるために触ってみました。

# 目次

1. [keccak256とは](#Chapter1)
1. [Pythonによるkeccak256によるハッシュ値の出力](#Chapter2)

元記事を表示

pythonでパッケージのVersion確認

パッケージ,ライブラリ,モジュールのバージョン確認の方法をいつも調べてるので,めもってゆく~

### ターミナルでpythonを起動した場合
1. import hogehoge
1. hogehoge.__version__を表示する(printなど)

“`python:terminal(numpyの場合)
~/ python
>>> import numpy
>>> print(numpy.__version__)
“`
### pipを使う場合
– listでパッケージ名とバージョンを一括表示
“`terminal:terminal
pip3 list
Package Version
————— ——-
cycler 0.11.0
fonttools 4.33.0
kiwisolver 1.4.2
matplotlib 3.5.1
numpy 1.22.3
packaging 21.3
Pillow 9.1.0
pip

元記事を表示

OpenCVで映像処理

OpenCVで人間を画像認識してみた。

# 1.環境

作業環境としては、いつもお世話になっているGoogle Colabratoryを今回も使う。

# 2.画像データ表示

書籍を参考にとりあえず画像をGoogle Colaboratoryで表示するコードを書いてみたが、
“`Python
import cv2 # OpenCV

img = cv2.imread(“img/img01.jpg”)
cv2.imshow(“img”, img)
“`

いきなりエラーが発生した。
cv2.imshowはだめだから、代わりのライブラリを使えとのこと。

“`Python
DisabledFunctionError: cv2.imshow() is disabled in Colab, because it causes Jupyter sessions
to crash; see https://github.com/jupyter/notebook/issues/3935.
As a substitution, consider using
from goog

元記事を表示

Python で Oracle Graph(Jupyter 導入)

Oracle Graph を Python で操作するために、まずは同じクラウド環境に Jupyter をインストールする方法を紹介します。以前の記事「Oracle Graph をクラウド上で構築([ADB 編](https://qiita.com/ryotayamanaka/items/7769d1ed239bf997e3ff) と [DBCS 編](https://qiita.com/ryotayamanaka/items/ef3c7bef872daf276979))」では Marketplace イメージを使用して Graph Server をセットアップしたので、今回はこのインスタンスに Jupyter をインストールします。

## Jupyter のインストール

Jupyter にウェブブラウザからアクセスするためのポート `8888` を開放します。
![Screen Shot 2022-05-03 at 14.11.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410176/e1

元記事を表示

Python学習記録_6日目.統計学入門・matplotlib・決定木

# 元記事
[Python学習記録_プログラミングガチ初心者がKaggle参加を目指す日記](https://qiita.com/noway6064/items/14ab494dc65d3040f733)
6日目です。

GW挟んで色々記憶が薄れている部分もあるので前回までにやったことを読み直してみたんですが
やっぱり記事という形で残しておくと振り返りがしやすくて良い感じだなぁと思いました。

今回は決定木について学べるということで楽しみです。
ではさっそく行きましょう。

### 統計学入門(平均、分散、標準偏差) 15m …
##### 統計学とは
>統計学というのはどのような学問なのでしょうか。
統計学は、ある1つのデータ群に対し、データの性質を調べたり、未来のデータを推測するための学問です。
統計学には大きく3種類に分類することができます。
>
>1.記述統計学
2.推測統計学
3.ベイズ統計学
>
>この章では、統計学における「平均」「分散」「標準偏差」「偏差値」に関しての最低限の知識を学びます。またPythonのnumpyライブラリを使用します。

numpyはデータの前処

元記事を表示

local環境でPyodideから自作のPython Packageを使う

# Pyodideとは
まずはちょっとしたご紹介を。 
>Pyodide is a port of CPython to WebAssembly/Emscripten.

翻訳: Pyodideは、CPythonからWebAssembly/Emscriptenへの移植です。

ということで、Pyodideを使うとブラウザ側でpythonを使えるようになります。つまりPythonがインストールされていなくてもPythonの処理が動きます。 その恩恵として、Pythonの成果物をいち早くユーザ(チームメンバ、クライアント、会社内の社員、etc…)の手元に届けることができます。

弱点としては読み込みに5秒ほど時間がかかるということです。こちらはロードマップのリストに入っているので改善されることを期待(https://pyodide.org/en/stable/project/roadmap.html)

# 実行時の環境
macOS
python3.9

# 環境構築からPackageの読み込みまで
Pythonの環境構築からローカルサーバーを立てるまでのワンライナー(git clon

元記事を表示

OTHERカテゴリの最新記事