Python関連のことを調べてみた2020年08月25日

Python関連のことを調べてみた2020年08月25日

色々な言語でファイルIOを競って速度比較

複数のプログラミング言語で約 1GB の CSV ファイルを Read/Write して時間を測定してみました!

# 共通ルール

– どの言語でも同じファイルを使用して確認すること
– ファイルは一行ずつ読み散り、一行ずつ書き込むこと
– OSの差を無くすため、Docker Image は全て base(Ubuntu 18.04 LTS)を使用すること

# まずは結果

|言語|5回実行した平均タイム(秒)|
|:–|:–|
|C-lang|6.2962|
|C++|6.0538|
|C#|17.1798|
|Golang|10.3966|
|Java|21.0840|
|Python|32.6949|
|Ruby|30.7153|
|Scala|21.8364|

やっぱりC/C++がダントツで早い!!
次点でGo言語

# 実装サンプル

5年ぶりくらいにC++書いたので綺麗ではないと思いますが、一番早かったのでサンプルとして載せます。

他の言語でも以下の動作をベースとして実装しました。

– 5回実行した平均時間を計算
– 1行読んで1行書き込む

“`c
#inc

元記事を表示

mecab, neologd-ipadicのcolab上での使用方法

## はじめに
ipadic-neologdとは、
![mecab-ipadic-NEologd : Neologism dictionary for MeCab](https://github.com/neologd/mecab-ipadic-neologd)
mecab用の辞書の一つ。週2回以上更新してくださるので、新語や固有表現に対応ができる。
## 例  
“`python

#ipadic-neologd未使用
m=MeCab.Tagger()
print(m.parse(“COVID-19によりオーバーシュートが起こった。”))
>COVID COVID COVID 名詞-固有名詞-組織
– – – 名詞-サ変接続
19 19 19 名詞-数
により ニヨリ により 助詞-格助詞-連語
オーバー オーバー オーバー 名詞-サ変接続
シュート シュート シュート 名詞-サ変接続
が ガ が 助詞-格助詞-一般
起こっ オコッ 起こる 動詞-自立 五段・ラ行 連用タ接続
た タ た 助動詞 特殊・タ 基本形
。 。 。 記号-

元記事を表示

PythonでMLflowからmetricの履歴を取得する

# tl;dr
“`python
import pandas as pd
import mlflow

def get_metric_history(run_id, metric):
client = mlflow.tracking.MlflowClient()
history = client.get_metric_history(run_id, metric)
history = [dict(key=m.key, value=m.value, timestamp=m.timestamp, step=m.step) for m in history]
history = pd.DataFrame(history).sort_values(“step”)
history.timestamp = pd.to_datetime(history.timestamp, unit=”ms”)
return history

train_loss = get_metric_history(run_id, “train_loss”)
valid_lo

元記事を表示

【徹底解説】Prometheusエクスポーター

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614998/7b52ebc4-f460-2f7d-100c-e6260e41a710.png)

Prometheusエクスポーターの作成は複雑なこともありますが、そうである必要はありません。 この記事では、Prometheusの基本を学び、Pythonに基づいたエクスポーターの実装を示す2つの段階的なガイドを紹介していきます。 最初のガイドは、監視するアプリケーションに関するメトリックをスタンドアロンで公開するサードパーティのエクスポーターについてです。 2つ目は、組み込みアプリケーションメトリックを公開するエクスポーターをカバーしていきます。

#Prometheus概要
[Prometheus](https://prometheus.io/)は、2012年の導入以来、独自の概念を適用してきた時系列メトリックの主要なモニタリングツールです。具体的には、Prometheusのデータ収集のプルアプローチは、エクスポーターと柔軟な視覚化とと

元記事を表示

Pythonのbytesの使い方色々

## bytesの使い方

Python 3.7.5 で確認。

### bytesの自力入力

“`python
b’\x00\x01\x02\x03′
# result: b’\x00\x01\x02\x03′

b’\x64\x65\x66\x67′
# result: b’defg’ # asciiコードに対応した文字が表示されている
“`

### ファイルからbytesで読込

“`python

# with無し
fp = open(‘filename.bin’, ‘rb’)
all_bytes = fp.read()
fp.close()

# with付き
with open(‘filename.bin’, ‘rb’) as fp:
all_bytes = fp.read()
“`

### 整数をbytesへ変換

“`python
a = 255 # 準備コード
a.to_bytes(2, ‘little’) # to_bytes(変換後のバイト数, エンディアン)
# result: b’\xff\x00′
“`

### bytes

元記事を表示

人気Pythonプロジェクトのルートにある〇〇ファイル is 何?

# 前置き

*setup.py*とか*requirements.txt*とかPythonプロジェクトでよく見るファイルについてちゃんと理解したいなー、そもそもどんなファイルがあるんだろ?と思っていろいろ調べていました。
とりあえず先人に倣えということで、GitHubで人気のPythonプロジェクトの中身を見ていたところいろんなツールの設定ファイルがあり、へーこんなツールあるんだーふむふむ、他にはどんなツールが使われているんでしょう?と当初の趣旨とは違うところで興味が出てきたわけです。

というわけで**GitHubのPythonプロジェクトでスターが最も多いプロジェクト約700個**を対象にルートにおいてあるファイルをカウントして多く使われているファイルを集計、なんのツールが使っているファイルなのか調べてみました。

# ルール

* [GitHubのPythonトピック](https://github.com/topics/python?l=python&o=desc&s=stars)から”Most Starts”でソート、このページで取れるだけ全部のリポジトリを検索。総数は**6

元記事を表示

同じデータ分析を kaggle notebook(python)とPowerBIで同時にやってみた①

#背景
巷にはデータ分析のツールとして複数のサービスが提供されています。私は製造業に関連するお仕事をしていますが、主に下記2手法をデータ分析及び視覚化用途として耳にします。

– 環境① Python + Numpy + Pandas + αを用いたデータ分析
– 環境② BIツール(Business Intelligence tools)によるデータ分析

この2ツールの違いについて比較検討する上で、「2ツールで同じ分析をやってみればいいんじゃない?」とのアイデアの元、実際に試してみました。

※初投稿です。お気づきの点等ありましたら、ご指摘頂けますと幸いです。

#システム構成

###共通環境
使用PC OS:Microsoft社製 Windows10 Pro 64bit
使用ブラウザ: Microsoft社製 Edge

###環境① ”Python + Numpy + Pandas + αを用いたデータ分析” 動作環境
・使用環境:[kaggle notebook](https://www.kaggle.com/)
 クラウドサービスのためバージョン確認出来ず、2020/

元記事を表示

TecoGANについてのメモ帳

こんにちは

最近機械学習について勉強し始めたので、自分用に書きます。
初めて書くので書き方に間違いがあればご指摘いただけると嬉しいです。

今回は動画の超解像を行えるTecoGANについて動かしてみました。
ソース:https://github.com/thunil/TecoGAN
論文:https://arxiv.org/pdf/1811.09393.pdf

理解が浅いと思うので何かあればつっこんでください…
また、今後修正するかもです。
また、OSはubuntuを用いています。
TecoGANはなにかとwgetを使用するので、windowsだとめんどくさいからです。
###PCスペック
OS : Ubuntu 18.04
CPU: i5 4670k
GPU: Geforce 2060SP
メモリ:16GB
言語: python 3.6

#TecoGANの導入
基本的にgitの手順どおりに進めます。
まずgitからソースコードをもらいます。

“`ruby:cmd
git clone https://github.com/thunil/TecoGAN.git
“`

次いで

元記事を表示

Prolog Object Orientation for Python Programmers

One of the best kept secrets in Prolog programming, is the fact that the ISO module standard can be used for object oriented programming. To convey the idea how this is done, we will here compare the approach with Python. This is an easy 4 step tutorial with links to further information at the end.

# Prolog Single Dispatch

The Pythonesk self-parameter is a convention to allow a procedure to act as an object method. Analogously a Prolog object receiver can be accessed as the first parameter of

元記事を表示

GCPの手書き文字認識(OCR)を使ってみる

# 概要
GCP(Google Cloud platform)で利用することのできる光学式文字認識(OCR)機能を使って、手書きの文字を認識する方法をまとめました。
GCP初心者、これからGCP使ってみたい人向けです。

# はじめに
### 目標
GCPのOCR機能を利用して、画像内の手書きの文字を認識することが目標です。

### 実行環境
macOS Catalina 10.15.6
Python 3.8.1

# 目次
– 始める前に
– 入力データを用意しよう
– いざ、実装
– 実行
– 実行結果
– コード解説
– 感想

# 始める前に
GCPの各サービスを利用するにはGoogleアカウントを作成する必要があります。Googleアカウントをお持ちでない方は[こちら](https://support.google.com/accounts/answer/27441?hl=ja)を参考にGoogleアカウントを作成してください。

Googleアカウントを作成したら[GCPのコンソール](https://console.cloud.google.com/)にアクセスし、[

元記事を表示

ブロードキャストを使ってデータ内すべてのペアに対する演算を簡潔に書く

# 3行で
* 類似度に基づくレコメンドやk近傍法など、データ同士の可能なペアすべてに対して計算を行いたい場面がある
* forループを書けばできるが、numpyなりtfなりの機能を活かしたい
* ブロードキャストを使って簡潔に記述できる

# 問題設定
$-1\leq x \leq 1$, $-1\leq y \leq 1$を満たすすべての$(x, y)$の集合を$A$とする。
$A$から任意の元を選んだ際、$A$に含まれる格子点と選んだ元とのL1距離を計算する。

なお、$(x_1, y_1)$と$(x_2,y_2)$のL1距離は以下で表される

“`math
d_1((x_1, y_1),(x_2,y_2)) = |x_1 – x_2|+|y_1 – y_2|
“`

# 考え方
選んだ元とすべての格子点とのL1距離を計算し、距離が小さい順に5つ選ぶ。

L1距離の計算を一斉に行うため、次のようなnp.ndarray(もしくはtf.tensor)を考える。

“`python
lattice=np.array([[ 1, 1],
[ 1

元記事を表示

PythonとGoogle APIを使ってCSVの予定でGoogleカレンダーを更新してみた

目標:Googleカレンダー⇔CSVファイル⇔別アプリのようにカレンダーと他アプリを連携すること。
以下の続編。
>Pythonを使ってCSVの予定をGoogleカレンダーに載っけてみた
>https://qiita.com/Octpascal/items/07e53bd89dfbca93bf3e

CSVのファイルに記述した予定でGoogleカレンダーを更新するプログラムを作りました。
**現状、CSV⇒Googleカレンダーの一方向です。**

CSVファイルは前回と変わらず、以下の記述

“`csv
id,cid,summary,location,description,start,end
“`
– id : CSV内で識別用ID(str)
– cid : カレンダーに登録したときにGoogleカレンダー上で決定されるID(str)
– summary : イベント名(str)
– location : 開催場所(str)
– description : 詳細(str)
– start : 開始時間(str 例:2020/08/22 09:00 もしくは 2020/08/22

元記事を表示

【MS Azure】Azure FunctionsとKaggle APIでコンペ情報をSlack通知する

# 概要
Kaggleをやるうえで、ディスカッションやNotebookの情報をなるべく素早くキャッチしたいということがあると思います。
コンペや分析環境としてMicrosft Azureを使っている方もいると思いますので、今回はMicrosft AzureのFaaSであるAzure FunctionsとKaggle APIを利用してKaggleのコンペ情報をSlackへ通知するやり方についてまとめてみました。
![kaggle0.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687845/395924e9-668d-80e6-75eb-f31e5c9b8c25.png)

# 前提
– AzureFunctions,Kaggle API,Slackをどう接続してインテグレーションするかに主眼をおいているため、各サービスの設定や開発の詳細については場合により省略しています。
– Kaggle,Slack,Microsoft Azureのアカウントは取得済みであることが前提です。

# 手順

##1. S

元記事を表示

Spotifyのランキング特徴【8/17〜8/23】

#Spotify APIを使ったランキング分析【8/17〜8/23】
今週の動きを見ていきましょう!

##「香水」「夜に駆ける」強すぎ
相変わらず首位はYOASOBIの「夜に駆ける」。すごいですね。
トップソングにあるから聴いちゃう→聴かれるからランキングに居続ける、という好循環が最強。

###夜に駆ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/652f5da6-fb26-109d-2a8b-67fb446a523c.png)
一瞬下がっている日は米津玄師の「Kanden」が1位を取った8/5のみ!

###香水
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/661171/bfefc35f-59b8-ef05-772c-952a3e0ab29b.png)
YOASOBIの1日以外にも動きはありましたが、安定して2位をキープ。

##後を追う米津玄師
3位は米津玄師の

元記事を表示

データ分析コンペで使う思考停止初手LightGBM

# はじめに
最近KaggleやSignateなどのデータ分析コンペにはまっており、いくつかのコンペに少しづつ参加しながら日々勉強中。
毎回はじめにデータに向き合う前に、コンペの難易度やデータの傾向を知るために行っているLightGBMのテンプレートがあるので、それを公開します。

もっとこうした方がいいとかあったら教えてください!

## 環境
– Ubuntu18.04
– Python3.8.0
– 利用したデータはKaggleのTitanic
[Titanic: Machine Learning from Disaster \| Kaggle](https://www.kaggle.com/c/titanic)

# 全体像

## データの読み込み
データの読み込みと必要なライブラリのインポートを行う。学習データをよく確認しずに始めると、意外にデータ量が膨大だった、、、みたいなことがあるのでデータ数量くらいは確認しておく。

“`python
from datetime import datetime
import numpy as np
import matplo

元記事を表示

python 文字列のスライス

#はじめに
この記事を書く理由は、競プロを始めてスライスを使う場面が多く、頭の中が混雑してきたので簡単にまとめようと思ったことがきっかけです。単なるスライスのメモです。

##プログラムコード
数字の文字列です。数字の文字列にした理由は、出力結果がわかりやすいと思ったからです。

“`python

s = “12345”
print(s[-1]) # 末尾
5 # 出力結果
print(s[:-1]) # 末尾を削除
1234
print(s[0]) # 先頭
1
print(s[0:]) # 先頭から最後まで
12345
print(s[1:]) # 1番目から最後まで
2345

start = “6” + s[1:]
print(start) # 先頭を削除して、6を先頭に追加
62345

end = s[:-1] + “6”
print(end) # 末尾を削除して、6を末尾に追加
12346
“`

元記事を表示

Geolonia 住所データを使って不審者MAPをサクッと作ってみた

# この記事について
箇条書きにすると、以下のモチベーションで本件に取り組みました。

– [Geolonia 住所データ](https://jp.techcrunch.com/2020/08/05/geolonia-retechjapan-open-data/) というものが公開されたので、これを使って何かしてみたかった
– ほぼ同時期に不審者情報サイトを見つけたので、これだ!と即決
– selenium を使ったスクレイピングをしてみたかった
– beautifulsoupしか利用経験がなかったのです

# 成果物
このような物ができました。

https://suzukidaisuke.gitlab.io/fushinsha_map/

大島てるの不審者情報バージョンみたいなものですね。
比べちゃ失礼なほど完成度低いけど。
※ [gitlab pages](https://gitlab.com/help/user/project/pages/index.md) というものを初めて使いました。こんな機能が有ったんですね。

# どうやって作ったか
コードを g

元記事を表示

犬ですが何か?GETリクエストとクエリパラメータの巻

#URLクエリパラメータを受け取る

こんにちワン!柴犬のぽん太です。今日は公園でボール遊びをしていたらボールを顔面に受けてしまってかなり恥ずかしかったです。

さて、タイトル通り、URLクエリパラメータを受け取って表示してみたいと思います。
http://example.com/wan/?type=shiba&name=Ponta
と書いてあったら{type:shiba},{name:Ponta}({キー:値}の組み合わせです)というデータとして受け取ります。

“`
(venv_dog) Ponta@shiba_app # cat wan/views.py
from django.http import HttpResponse

def index(request):
if ‘name’ in request.GET:
name = request.GET[‘name’]
res = “名前は” + name + “です。”
else:
res = “”
if ‘dogtype’ in request.GE

元記事を表示

python書くなら絶対に使いたい2つのドキュメント生成ツール

python、djangoを本格的に勉強し始めて3ヶ月の自分からみて、これは便利だ!!!と思ったドキュメント生成ツールを2つ紹介します!
各ツールの概要 → djangoでの適用方法の順で記載しています。

検索してもよく上位に記載されている内容ですが、djangoでの適用例として参考いただければ幸いです。

## sphinxを使ったdocstringのドキュメンテーション

![sphinx](https://www.sphinx-doc.org/ja/master/_static/sphinxheader.png)

Sphinxは知的で美しいドキュメントを簡単に作れるようにするツールです。Georg Brandlによって開発され、BSDライセンスのもとで公開されています。
このツールはもともと、Python のドキュメンテーション用に作られました、今では幅広い言語のプロジェクトでドキュメント作成を容易にするツールとして利用されています。(by [公式サイト](https://www.sphinx-doc.org/ja/master/))

自分が知ったきっかけはRead the

元記事を表示

【データサイエンティスト入門】記述統計と単回帰分析♬

昨夜で、[【データサイエンティスト入門】科学計算、データ加工、グラフ描画ライブラリの使い方の基礎](https://qiita.com/MuAuan/items/d4475e15599b8c6e147e)までまとめました。今夜からいよいよそれらを使って本題に入っていきます。今夜は記述統計と単回帰分析をまとめます。本書に乗った解説を補足することとします。
【注意】
[「東京大学のデータサイエンティスト育成講座」](https://www.amazon.co.jp/%E6%9D%B1%E4%BA%AC%E5%A4%A7%E5%AD%A6%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E8%82%B2%E6%88%90%E8%AC%9B%E5%BA%A7-Python%E3%81%A7%E6%89%8B%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B

元記事を表示

OTHERカテゴリの最新記事