Python関連のことを調べてみた2021年03月26日

Python関連のことを調べてみた2021年03月26日

Decimal

# はじめに
[ABC196-B「Round Down」](https://atcoder.jp/contests/abc196/tasks/abc196_b)

“整数または小数 X が与えられるので、小数点以下を切り捨てて整数で出力してください。“

というシンプルな問題ですが、少しはまったので問題点と解消法をメモしておきます。

# 問題点

**小さい数値(小数)**

“`python:python
x = 5.90
print(int(x)) # 5
“`

**大きい数値(整数)**

“`python:python
x = 3141592653589793238462643383279
print(int(x)) # 3141592653589793238462643383279
“`

**大きい数値(小数)**

“`python:python
x = 314159265358979323.8462643383279
print(int(x)) # 314159265358979328 (数値が正常に出

元記事を表示

「モンテカルロで円周率」を理解する

# モンテカルロ法で円周率の近似値を求めるアレ
モンテカルロ法で円周率の近似値を求めることができます。
有名な、内部に円が描かれている正方形に点をたくさん打つアレです。
![イメージ図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558315/6098f01c-55a8-9167-fb11-bee099673b05.png)
式はこんな感じ。

“`math
\pi = \frac{ 円の中に入った数 }{打った点の合計} \times 4
“`

なんでこれで円周率の近似値が求まるのか?
初めて理解した時はけっこう感動しました。
やってることは単純で簡単なので、解説してみます。

# 解説
### ステップ1
まず半径1の円と、その円に外接するような正方形(1辺の長さが2)を描きます。
![図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558315/e8461f39-df42-c22b-cef1-102875

元記事を表示

Pythonを使ってFORTNITEのキルログを自動集計してみた

# はじめに

FORTNITEもシーズン6に入り、弓などの新しい武器が追加されたり、クラフトの要素が追加されたりと雰囲気がガラッと変わりましたね。どんな対戦ゲームでもそうですが、環境がガラッと変わった時は、どういった戦術が効果的か、強い武器はなんなのか、といった情報は誰でも気になるところかと思います。

例えば今回のFORTNITEシーズン6でいえば、実は弓がめちゃくちゃ強くて、みんな弓を使って相手を倒している、なんてことになると、弓対策をしたほうが勝率が上がるかもしれません。

普段からFORTNITEをプレイしており、かつデータサイエンティスト的なことをしている身としてはFORTNITE$\times$データ分析で何か示唆を出してみたいものです。いろんな分析方法は考えられそうですが、今回はFORTNITEのプレイ動画内に表示されている「キルログ」をPythonを使って自動集計してみようと思います。
※以下の画像は実際に私のプレイ動画のキャプチャを使用しております。
![image.png](https://qiita-image-store.s3.ap-northeast-1.a

元記事を表示

Python/C APIを読む その2(参照カウント)

#概要
Pythonの構造を理解する助けとして、C APIのドキュメントを読み砕いていく。

#内容
##環境
Python 3.7 (CPython)に話を固定するため、
以下のコミットに話を限定したいが、必ずしもそうはならない。
[tree](https://github.com/python/cpython/tree/a144feeb7ec501aaf30072d50e70d54b200e5ef0) ([コミット](https://github.com/python/cpython/commit/79373951b3eab585d42e0f0ab83718cbe1d0ee33); [ブランチ](https://github.com/python/cpython/tree/3.7))
(↑ githubのリンク)

##内容
###`Py_INCREF(o)`
####<概説>
オブジェクト`o`に対する参照カウントを一つ増やす。([出典](https://docs.python.org/ja/3/c-api/refcounting.html#c.Py_INCREF))

##

元記事を表示

【Python】Seleniumでブラウザ制御時にChromeDriverエラーが発生した場合の対処法

# エラー発生

Google Chromeは日々バージョン更新されるため,時々下記のようなエラーが発生してしまうことがある.焦る気持ちを抑えつつ冷静に対処しよう.

“`
session not created: This version of ChromeDriver only supports Chrome version XX
“`

# Google Chromeのバージョン確認

まず,Google Chromeブラウザ右上の︙をクリック

**ヘルプ**
![chromever1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478088/94ed83f1-d079-f9e8-2cfa-b6798fe61bcd.png)

**Google Chromeについて**
![chromever2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478088/89d9a3cf-4839-969d-4be8-bd

元記事を表示

Python/C APIを読む その1(便利なマクロ)

#概要
Pythonの構造を理解する助けとして、C APIのドキュメントを読み砕いていく。

#内容
##環境
Python 3.7 (CPython)に話を固定するため、
以下のコミットに話を限定する。
[tree](https://github.com/python/cpython/tree/a144feeb7ec501aaf30072d50e70d54b200e5ef0) ([コミット](https://github.com/python/cpython/commit/79373951b3eab585d42e0f0ab83718cbe1d0ee33); [ブランチ](https://github.com/python/cpython/tree/3.7))
(↑ githubのリンク)

##内容
###Py_UNREACHABLE()
####\<概説\>
辿りつくはずのない場所に使う。(assert(0)やabort()を使いたくなるようなcase節のdefault内など。)([出典](https://docs.python.org/ja/3/c-api/intro.htm

元記事を表示

RaspberryPiを起動してみた

__皆さんかなりお久しぶりです。__

最近は仕事が忙しくてなあ。という言い訳をしながらラズパイに思いをはせる日々でした。

今日は久々にラズパイをいじる気になったので勉強したことを書いていこうかなと思います!
(ボールドとか箇条書きとかを覚えたよ^^)

switch(本記事のお品書き){

case 第一章 : ラズパイでやりたいことが決まったよ;

・ラズパイ初心者が作りたいものとは! ;

・実現させる方法;

・break;

case 第二章 : ラズパイ(そもそもマイコンについて)知らないことしかない;

・GPIOについて;

・IDEでHelloWorldする方法(初Python!);

・break;

}

***

さて、本編に入る前に、、
やりたいことがあったわけではなく、「技術者として一家に一台。とりあえず持っとくか~」と買ったRaspberryPi4ですが、OSをインストール後ちゃんと起動できただけで満足して2週間ほど放置状態でした。(後程OSインストールなど最初の立ち上げについて

元記事を表示

機械学習を用いた株価予測

# ユニクロの株価予測

公開データから2012年から2016年までのユニクロの株式情報に関するデータセットを用いて簡単な株価予測をします。

株価予測をするにあたって、「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」を参考にさせていただきました。

## 1. データセットの取り込み

必要なライブラリをインポートします。

“`python
%matplotlib inline
import datetime
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import sklearn
import sklearn.linear_model
import sklearn.model_selection
“`

ダウンロードしたデータセットの中身は以下のような状態で、データの欠損等は見られない綺麗なデータセットでした。

![ブログ用 – Jupyter Notebook および他 3 ページ – 個人 – Micros

元記事を表示

【Python】PLYを使ってダイスボットをつくる

# はじめに

## つくったもの

 コンソール上で動く対話型のダイスボットです。四則演算と変数、加算ダイス[^1]が使えます。PLYライブラリを使用してオリジナルの演算子を実装しています。

[^1]: TRPGでよく使う`2D6`や`1D100`のような、振ったダイスの出目をすべて足し合わせるダイスのこと。

## 開発の経緯

* Rubyで書かれているBCdiceをPythonに移植できないか試行錯誤する。
 ↓
* BCdiceのファイルの中に拡張子が`.y`のファイルをみつける。
 ↓
* ググって、`lex/yacc`の存在を知る。Pythonに移植されてないのか調べる。
 ↓
* PLYのことを知る。なら作るとなる。

## PLYって?

 コードを解説する前に、PLYがどういうものなのか簡単に解説します。

 PLY(Python Lex-Yacc)は、`lex/yacc`というC言語のツールをPythonに移植したものです。`lex/yacc`は、字句解析・構文解析を行うツールです。

 英語でたとえる

元記事を表示

FlaskのCookieをつかって「みる」~最小構成のテンプレートCookie~

# はじめに
Flaskで、ログインプログラムを作ろうと思った。でも、Cookieの使い方がよくわからなかった。調べてみても「最小限」の使い方は載っていなかった。だから最低限のCookieの使い方を書いてみた。

## 内容
cookieを使って「みたい」人のための最小のcookieの使い方

## 対象
cookieをFlaskで使ってみたいと思ったけど、理解できなかった人

Flaskの使い方がある程度わかる人

# よくあるサンプルコードから使い方を知る
“`python:sample.py
from flask import Flask, render_template, make_response, request
import json
import datetime

app = Flask(__name__)

@app.route(‘/resp’)
def resp():
max_age = 30
expires = int(datetime.datetime.now().timestamp()) + max_age
response = m

元記事を表示

LightGBMのハイパーパラメータチューニング(Optuna)をしてみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回はLightGBMのハイパーパラメータチューニング(Optuna)を実装してみました。

##はじめに
過去に回帰モデル系の記事は纏めておりますので、細かい内容は他の記事を参考にしてください

* [scikit-learnを活用した機械学習の予測モデル](https://qiita.com/DS27/items/aa3f6d0f03a8053e5810)
* [不確かさを扱える新しい勾配ブースティングNGBoost](https://qiita.com/DS27/items/a0039c4eec78364c95ab)
* [PyCaretを使ってみた](https://qiita.com/DS27/items/bc56163b2cc48403deb0)

今回はLightGBMのハイパーパラメータチューニング(Optuna)について書きます。

##LightGBMの実装
まずは、LightGBMをハイパーパラメータチューニングをせずに実装してみます。
今回もUCI Machine Learning Repository

元記事を表示

Pythonを使った彼ピッピの作り方

#はじめに
彼氏 = 彼ピッピ

ならば

し = ぴっぴ

なのである

というわけで、”し”を”ぴっぴ”にする(以下、彼ピッピ化という)コードをPythonで書いていく

#コード
“`python
from pykakasi import kakasi

kakasi = kakasi() #オブジェクトをインスタンス化
kakasi.setMode(‘J’, ‘H’) #モード設定
conv = kakasi.getConverter()

txt = input(‘>>>’)

print(conv.do(txt).replace(‘し’,’ぴっぴ’).replace(‘シ’,’ピッピ’).replace(‘シ’,’シ’)) #彼ピッピ化
“`

たったこれだけで彼ピッピ化してくれます。

“`
>>>彼氏
かれぴっぴ
“`

コピペして使いたい方は「pykakasi」を予めインストールしておいてください。

“`
pip install pykakasi
“`

漢字をひらがなやカタカナ、ローマ字に変換してくれるライブラリです。
「pykakasi」の詳しい使い

元記事を表示

ROSの勉強 第29弾:移動ロボットの作成(2)

# #プログラミング ROS< 移動ロボットの作成(2) >

##はじめに
1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第29弾として,「移動ロボットの作成(2)」を扱う.

##環境
#####仮想環境
|||
|:-:|:–|
|ソフト|VMware Workstation 15|
|実装RAM|2 GB|
|OS|Ubuntu 64 ビット|
|isoファイル|ubuntu-mate-20.04.1-desktop-amd64.iso|

#####コンピュータ
|||
|:-:|:–|
|デバイス|MSI|
|プロセッサ|Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz|
|実装RAM|8.00 GB (7.89 GB 使用可能)|
|OS|Windows (Windows 10 Home, バージョン:20H2)|

#####ROS
|||
|:-:|:–|
|Distribution|noetic|
|プログラミング言語|Python 3

元記事を表示

自動化プログラムを作る中で気づいたこと【音楽制作視点】

こんにちは。KHUFRUDAMO NOTESのYoshito Kimuraです。

最近、RPA(ロボティック・プロセス・オートメーション)が流行っているようですね。
いろいろ課題・問題もあるようですが。

https://togetter.com/li/1194490

RPA導入に於ける注意点

僕自身は、基本的に音楽制作の全工程(作曲から楽器演奏、アートワーク周りまで)を一人でやる人で
音楽制作の効率化のためPython(PyAutoGuiなど)で自動化プログラムをしばしば自作しています。

今回は、創作活動に関係する作業の自動化プログラムを作る中での気付きをまとめてみました!

“創造的”な時間か否か をより意識するようになった。

音楽をはじめとした”創造的”な分野は、自動化による業務効率とそこまで相性が良くないイメージがあるかもしれま

元記事を表示

Djangoアプリを外部サーバにデプロイする方法

## レンタルサーバを選ぶ

作成したWebアプリをそのままGitHubに上げて、ソースコードをダウンロードしてもらい、実行してもらうことで、アプリを使ってもらうことも可能であるが、その場合ソースコードをダウンロードする必要があったり、実行に必要な依存ライブラリもダウンロードしてもらう必要があるなど、手間がかかる。そこで、作成したアプリを簡単に利用してもらうために外部サーバにデプロイするという方法がある。

外部サーバにデプロイするためにはサーバを借りる必要がある。サーバを借りるといっても有料のサーバは敷居が高いため無料で使えるサーバを借りることにする。Pythonが使用でき、無料で利用できる有名なサーバには以下のようなものがある。

– Heroku
– PythonAnywhere
– AWS

今回は、一番簡単にデプロイできそうなPythonAnywhereを使用した。

## PythonAnywhereの特徴

以下にPythonAnywhereの無料枠の特徴について簡単にまとめた。

– いつアクセスしてもプログラムからレスポンスをもらうことができる
– ユーザ名がその

元記事を表示

Python Selenium Javascriptのポップアップをクリックする

前提:
python 3.8
Seleniumを使う
Windows10

Javascriptのアラート(ポップアップ)をクリックする必要があったのでメモ
最近のアラートはスタイルシートのものが多いですが、久しぶりにJavascriptのアラートに出会ったのでメモします。
※ちなみにスタイルシートで作成されたアラートを操作するときはCSSセレクターで。xpathやIDだとうまくいかないことおおいです。

参考サイト
[①アラートがでてくるまで待つ:alert_is_present](https://kurozumi.github.io/selenium-python/waits.html)
[②アラートを操作する](https://kurozumi.github.io/selenium-python/api.html#module-selenium.webdriver.common.alert)
↑文字入力やベーシック認証の解説もあります。

前提:

“`:python:変数driverにはSeleniumのクロームドライバーがすでに設定済みとする
import time
f

元記事を表示

boto3でCloudSearch検索ドメインに複合クエリを実行する

https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/searching-compound-queries.html

↑をboto3でやってみました。

“`python:cloudsearchdomain.py
import boto3

endpoint_url = ‘https://search-todofuken-XXXXXXXXXXXXXXXXXXXXXXXXX.ap-northeast-1.cloudsearch.amazonaws.com’

cloudsearchdomain = boto3.client(
‘cloudsearchdomain’, endpoint_url=endpoint_url)

query = “””
(and
prefecture:'{prefecture}’
city:'{city}’
(range
field=zip [{from_zip}, {to_zip}]
)
)
“””.format(prefecture=’宮城

元記事を表示

signate:日本取引所グループ ニュース分析チャレンジ②

今回は、公開されているsignateチュートリアルの2章の部分を描いていきたいと思います。

こちらのチュートリアルでは、「ファンダメンタルズ分析チャレンジ」に関するものです。

#コンペ概要

ここら辺は、チュートリアルに詳しく書いているので、詳しくはチュートリアルを見てください。要約すると、株式市場をデータ分析したい人が最初の足掛かりとして取り組むのに良いプログラムです。

うんうん。データ分析以外の株式市場の知識も得られそうで一石二鳥になりそうですね。

それでは始めます。

#2.1章
株式情報の使用用途や本コンペにおける評価指標が示されています。

評価指標は、難しかったので随時理解次第こちらの記事を訂正したいと思います。

#2.2章
開示されているデータファイルについて、まとめられている。

###stock_list
銘柄の名前や業種区分などの基本情報をメインに書かれている。
例えば、銘柄の業種区分や発行済株式数等々が書かれている

###stock_price
各銘柄の各日付毎の始値や終値などの株価情報が記録。

###stock_fin
株式投資における、ファンダメ

元記事を表示

cartopy世界地図上にデータプロットできない!

## グローバルマップ上に気象データをプロットしたいのになんか違う…
![cartopy_fail.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/811209/6567bcd0-6b86-4902-dc92-4296c22a7a75.png)

* 世界地図と降水データのサイズあべこべ…
* なぜか世界地図がさかさま…
* 横軸・縦軸があらぬ方向に…

####**とにかくcartopyで苦戦したので,その解決法を載せときます**

## 答えからいうと”plt.imshow(extent)”を使おう
お急ぎの方は,googleで’plt imshow extent’と検索すると幸せになれると思います.

“`python

from netCDF4 import Dataset
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

#降水データを読み込んでます.
ds = Dataset(path,’r’).vari

元記事を表示

任意サイトのサブドメインを列挙する

## 何?

あるサイトのサブドメインを探して列挙したい。
例えば`example.com`なら`ftp.example.com`や`ws3.example.com`などがサブドメインに当たる。
調べたところ[いくつかツール](https://github.com/search?o=desc&q=subdomain+enumeration&s=stars&type=Repositories)がヒットした。その中でも`sublist3r`がシンプルで良かったので紹介する。

## `sublist3r`

[aboul3la/Sublist3r](https://github.com/aboul3la/Sublist3r)は、各検索エンジンのクローラが拾ったレコードからサブドメインを検索し列挙するコマンド。(メンテされてるか微妙だが2020-03-25現在使用できた。)

インストールは:

“`bash:Terminal
# pypiには第三者がアップロードしているので本家repoから
$ git clone https://github.com/aboul3la/Sublist3r

元記事を表示

OTHERカテゴリの最新記事