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

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

活性化関数一覧 (2020)

#対象者
活性化関数について、どんなものがあるのかまとめました。
**最新のSwishとMishも載せています!**
一覧探してもなかなか良いの見つからないな〜という層をターゲットにしてます。
新しいのは見つけ次第追加します。情報をお持ちの方はぜひ教えてください!

#目次
– [ステップ関数(step)](#ステップ関数step)
– [恒等関数(identity)](#恒等関数identity)
– [Bent Identity関数](#bent-identity関数)
– [シグモイド関数(sigmoid)](#シグモイド関数sigmoid)
– [hard-sigmoid関数](#hard-sigmoid関数)
– [tanh関数](#tanh関数)
– [ReLU関数](#relu関数)
– [leaky-ReLU関数](#leaky-relu関数)
– [ELU関数](#elu関数)
– [SeLU関数](#selu関数)
– [ソフトマックス関数(softmax)](#ソフトマックス関数softmax)
– [softplus関数](#softp

元記事を表示

Pythonにおける値の入れ替え

Pythonにおける配列等の要素の入れ替えは、一時的な変数を使わなくても表現できる。
結論を言ってしまうと、**アンパックを使えばよい**ということ。

例えば、以下のような配列があるとする。

“`list.c
int lst[] = [2, 7, 4, 9, 13, 6, 3];
“`

ここで配列の要素を入れ変えたい。
この時、C言語等の場合は一時変数を用意しなければならない。
例えば、上記配列の0番目と4番目を入れ替えたい場合、

“`exchange.c
// 書き方の一例
int tmp;
tmp = lst[4];
lst[0] = lst[4];
lst[0] = tmp;
“`

しかし、Pythonの場合はアンパックを使って以下のように書くことが出来る。

“`list.py
lst = [2, 7, 4, 9, 13, 6, 3];
“`

“`exchange.py
lst[0], lst[4] = lst[4], lst[0]
“`

こういう観点からも、Pythonはシンプルに書けるので良いですね(^^)

元記事を表示

Djangoのforms.pyでログインユーザーを取得する方法

# やりたいこと

forms.pyのFormClassの中で、現在ログインしているユーザー情報を使用して
何らかの処理を行いたい。

“`python:forms.py

class Form(forms.ModelForm):
def method(self):
model = Model
model.objects.filter(user=[ログインしているユーザー]) # ログインユーザーを使いたい
“`

# 解決策

views.pyでFormインスタンスを作成する際、引数としてログインしているユーザー情報を渡す。

“`python:views.py

class View(View):

form = Form(user=request.user, data=request.POST)

“`

“`python:forms.py

class Form(forms.ModelForm):
def __init__(self, user, *args, **kwargs):

元記事を表示

ゼロから始めるLeetCode Day41「394. Decode String」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day40「114. Flatten Binary Tree to Linked List」](https://qiita.com/KueharX/items/3f0af8806a720999bf45)

今はTop 100 Liked Ques

元記事を表示

PythonでOutlookのメールを読み込む

## アナログな作業を自動化したい
私の日常業務の中に、Outlookで受信したメール中の「問い合わせ番号」「問い合わせタイトル」「URL」「受信日」などを、サーバーに格納されている管理表(Excel)に書き写すという超アナログな作業があります。

この作業をなんとか自動化できないかと思い、まず手始めに**Outlookで受信したメールをPythonで読み込む**ことを行います。

色々と調べてみましたが、あまり情報がなく試行錯誤しながらどうにかできましたので、備忘録も兼ねて情報を残しておきます。
(私の家のOfficeはとても古くてOutlook2007です…。おそらく最新のOfficeでも同じだとは思いますが、うまくいかない場合はご容赦ください。)

最終的なコードはとてもシンプルです。

## PythonでOutlookのメールを読み込む

### 前提
前提として私のOutlookのメールフォルダはこのようになっています。

outlook_folders.png韻を扱いたいpart6(一度整理)

##__内容__
一度これまでやったことを整理しながら、自分の考えも整理し、今後の方針を明確化する。現状で最適と判断した方法を紹介する。まずテーマとして、「韻」を身近に感じて欲しいと思っている。そこで、自分が普段使っている言葉で韻が踏めれば楽しいのではないかと考えた。韻の検索機能のようなものも考えたが、それだとみんな同じ韻を踏むことになって個性が失われるのではないか、という発想だ。普段思っていること、話していること、そういったものを箇条書きしたようなものが入力されたとき、「韻」の観点からそのデータを見ていこうという試みである。
##__データの前処理__

“`python
from pykakasi import kakasi
import re
import numpy as np

with open(“./gennama.txt”,”r”, encoding=”utf-8″) as f:
data = f.read()

kakasi = kakasi()
kakasi.setMode(‘J’, ‘K’)
kakasi.setMode(‘H’, ‘K’)
co

元記事を表示

ツイ消しbot

ツイートしてから一定期間を過ぎたツイートを削除するbotです。
一度削除したツイートを復元することはできないのでご注意ください。

# TwitterのAPI利用申請
twitter apiを利用するには利用申請(英作文)を行い、審査に通過する必要があります。
正直に「自動でツイ消ししたいから」と書いて通るかは微妙ですが、ある程度優良なアカウントであれば申請後すぐに自動的に通過することがあるようです。
自分の場合、アカウント作成から約1年経過、フォロワー数1000人ちょいで即パスでした。(2019年頭頃、今は変わってるかも)

# 依存ライブラリ
このライブラリをインストールしてください。
https://github.com/bear/python-twitter

“`bash
$ pip install python-twitter
“`

# ソースコード
以下の6つを適宜書き換えてください。

– SCREEN_NAME: ツイッターのユーザー名(@の後ろに続く部分、自分の場合は’\_P_E_N_T_A’)
– RETENTION: ツイート保持期間(秒単位)、この期間

元記事を表示

Ubuntu18.04にtensorRTをインストールした

Ubuntu18.04にCUDA10.1+cuDNN7.6.5をインストールしてtensorflow-GPU 2.1を入れて使おうとしたところ、import tensorflowした際にlibnvinfer6が読めなかったと警告メッセージが出ました。

これはtensorRTが入ってない為にフルに機能が使えないという警告のようですので、tensorRTをインストールしました。

なお、こちらのStep3の手順そのままです
https://ddkang.github.io/2019/09/19/installing-tensorrt.html

## 手順

TensorRTのインストーラーdebファイルを以下のサイトからダウンロードします
https://developer.nvidia.com/nvidia-tensorrt-6x-download

落としてきたdebファイルをdpkgで実行します。
以下ではdebファイルがカレントディレクトリにある状態で、tensorRT6.0.1.5 for cuda10.1をインストールしています。

“`terminal:terminal

元記事を表示

VScodeでPython (Windows10)

私のスペック
Pythonは元々Anacondaでたまに利用。
主流はRでRStudio。
そんな中でPythonの必要性が高まり(Deepね)、RStudioのような感じで使えるというVScodeを使ってみようかなと。Markdownもキレイだし。

ダウンロードとインストールは簡単。以下から。
[Visual Studio Codeダウンロードサイト](https://code.visualstudio.com/)

僕の場合は既にAnacondaが入っていたからそことは別の環境でPythonやりたいってのがあって新たにPythonをインストールした。
(VScodeではこのPythonを使うってこと。使用用途が違うのでというのが一番なのだが)
[Pythonダウンロードサイト](https://www.python.jp/install/windows/install_py3.html)
Anacondaではパッケージ管理などが基本的に`conda`ベースとなる。
これはAnaconda社のペースによるので使えないパッケージなどが出てくる。そうすると`pip`を使うしかないわけで

元記事を表示

Djangoをインストールしてからhtmlページを表示するまでの手順

#ここで書くこと:
この記事では「Djangoのインストール→htmlページを表示するまでの手順」について書いています。

また、執筆環境は
OS:macOS Catalina バージョン 10.15.4
Python:3.7.6
Django:3.0.3
となっています。

#そもそもDjangoとは何か?
Django(ジャンゴ)はPythonを使ったWebアプリケーションフレームワークの一つで、様々なWebアプリケーションを作成できます。豊富な機能が用意されていることが特徴の一つで、Djangoに含まれているコンポーネントを使用することでWebアプリケーションを開発する際の負担を減らすことができます。例えばユーザ認証や管理者用の画面などはDjangoを使えば実装できます。またWebアプリケーションの処理をPythonで実行させることもできます。

#Djangoのインストール
環境等にもよりますが、基本的にはどのOSでも

“`
$ pip install django
“`

でインストールできると思います。詳しいインストールのやり方についてはここでは省略いたしますので、[

元記事を表示

PythonでMattermostにIncoming Webhookを投げる

Mattermostのusernameとiconの上書きを許可する設定をし、Pythonを使ってMattermostに投稿しました

セルフホストするMattermostへWebhookを使ってメッセージを投げ込む必要があったので調査しました。
本プロジェクトはPythonを多用しているため、Pythonでできないか調べてみました。

### Python側の処理

Mattermostへのメッセージのポストは単純にhttp postを投げるだけなので、特段ライブラリなどいらないかなという思いはありましたが
一応調べてみたところ、[良さそうなライブラリ mattermostdriver](https://pypi.org/project/mattermostdriver/)があったので、そちらを使うことにしました。

使い方は簡単で

1. installします

“`
% poetry add mattermostdriver
# pipの場合は以下
% pip install mattermostdriver
“`

2. 以下のような感じで使います

“`
matt

元記事を表示

yukicoder contest 250 参戦記

# yukicoder contest 250 参戦記

## [A 1063 ルートの計算 / Sqrt Calculation](https://yukicoder.me/problems/no/1063)

n を割ることが出来る最大の i2 が見つかれば答えは、i と n÷i2 となる.

“`python
n = int(input())

for i in range(10 ** 5, 0, -1):
if n % (i * i) == 0:
print(i, n // (i * i))
break
“`

## [B 1064 ∪∩∩ / Cup Cap Cap](https://yukicoder.me/problems/no/1064)

f(x) = C1 – C2 を考える. f(x) = 2x2+(a-c)x+(b-d) となる. 当然 x = +∞ 及び x = -∞ の時は f(x) = +∞ である. 最

元記事を表示

DynatraceでPythonアプリケーションのパフォーマンスを監視する♪

Dynatrace で Pythonアプリケーションを監視するための、Oneエージェントエクステンション(下記)がリリースされたので紹介します。
https://github.com/dlopes7/autodynatrace

2020年5月末の時点で、これは、Dynatrace社員によって開発された(公式ではない)プライベートなエクステンションになりますが、簡単にPythonアプリケーションのパフォーマンスを可視化できますので、是非お試しください!

##対応モジュール
celery
concurrent.futures
confluent_kafka
cx_Oracle
django
flask
grpc
pika (RabbitMQ)
pymongo
pysnmp
redis
ruxit (Dynatrace plugin framework)
sqlalchemy
urllib3
custom annotations

##手順
1\. 監視対象のPythonが動作するホスト上に、Oneエージェントをインストールします。Dynatraceのメニュー”Deploy Dynat

元記事を表示

ゼロから始めるLeetCode Day40「114. Flatten Binary Tree to Linked List」

#概要
海外ではエンジニアの面接においてコーディングテストというものが行われるらしく、多くの場合、特定の関数やクラスをお題に沿って実装するという物がメインである。

その対策としてLeetCodeなるサイトで対策を行うようだ。

早い話が本場でも行われているようなコーディングテストに耐えうるようなアルゴリズム力を鍛えるサイト。

せっかくだし人並みのアルゴリズム力くらいは持っておいた方がいいだろうということで不定期に問題を解いてその時に考えたやり方をメモ的に書いていこうかと思います。

[Leetcode](https://leetcode.com/)

[ゼロから始めるLeetCode 目次](https://qiita.com/KueharX/items/6ee2502c3b620c795b70)

前回
[ゼロから始めるLeetCode Day39「494. Target Sum」](https://qiita.com/KueharX/items/cd08167d7626c2be8787)

基本的にeasyのacceptanceが高い順から解いていこうかと思います。

[Twi

元記事を表示

Ansible 自作モジュール作成 ~その2:ただコマンドを実行したい人生~

前回の記事:[Ansible 自作モジュール作成 ~その1:引数受け取りたい人生~](https://qiita.com/Ki2neudon/items/f6e1ee4fc8f29e12893f)

# 振り返り

– モジュールの雛形作った
– 複数の引数受け取れた

# ただコマンドを実行してみる

相変わらずの教科書 [Ansibleのモジュール開発(Python実装編)](https://dev.classmethod.jp/articles/ansible-develop-module-python/) 様を参考に、まずは“run_command“を試してみる。

“`python:makefifo.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

from ansible.module_utils.basic import AnsibleModule

# メイン処理
#———————————————————–
def main():
# A

元記事を表示

Flaskを使用し、外部ファイルを実行する

# やったこと
Flaskでウェブページを作成。
ボタンをクリックすると外部のスクレイピングファイルを実行させる。

#Flaskの準備
Flaskのインストール

“`
pip install Flask
“`

元となるファイルを作成

“`py:root.py
from flask import Flask

app = Flask(__name__)

@app.route(‘/’)
def hello():
return ‘Hello!’

if __name__ == “__main__”:
app.run(debug=True)

“`

実行

“`
python root.py
“`

その後

“`
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
“`
と、出力されるのでhttp://127.0.0.1:5000/ へアクセスします。

![スクリーンショット (57).png](https://qiita-image-store.s3.ap-nort

元記事を表示

☆安西先生…!!データ分析がしたいです……その1 データ準備☆ PythonでNBAの選手スタッツ(成績)を分析してみる。バスケ

全国のバスケ好きのみなさん、こんにちは。相田彦一と申します。
普段はとある高校のバスケットボールチームでマネージャー兼データサイエンティストとして様々なデータの分析を仕事としています。

今回は本場アメリカのプロバスケットリーグであるNBAの選手スタッツ(成績)を分析したいと思います。
分析といっても簡単なものですが、お付き合いください。

第1回目はデータ準備ということでスクレイピング&前処理についてです。
第2回以降がいつになるかはわかりません、ご容赦ください。永遠にないかもしれません。

# 環境

Google Colaboratoryを使いました。
今回紹介する処理はプリインストールされているライブラリだけで動かすことができます。大変便利です。

# データ収集

## スクレイピング

データ収集の部分をどうしようかと検索していると、下記のブログ記事をみつけました。

– [Web Scraping NBA Stats – Towards Data Science](https://towardsdatascience.com/web-scraping-nba-stats-

元記事を表示

ゼロから作るDeep Learning2の応用 スパムフィルタ

#1.はじめに
ステイホーム期間中に[「ゼロから作るDeep learning② 自然言語処理編」](https://www.amazon.co.jp/%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8BDeep-Learning-%E2%80%95%E8%87%AA%E7%84%B6%E8%A8%80%E8%AA%9E%E5%87%A6%E7%90%86%E7%B7%A8-%E6%96%8E%E8%97%A4-%E5%BA%B7%E6%AF%85/dp/4873118360)を読みました。
何とか最後までたどり着きましたが、このテキストには応用例があまり記載されていません。
そこで、テキストのコードを活用して、スパムフィルタ(文書分類モデル)を作成してみます。
本検討はQiitaの記事[ゼロから作るRNNによる文章分類モデル](https://qiita.com/Kosuke-Szk/items/43f330b0888f8e696c3f)を参考にしました。

#2.データ
Kaggleにある[「SMS Spam Collect

元記事を表示

ずぶの素人がPythonを始めたい

## 世の中のマニュアルは日本語で書かれているとは思えないくらい難しい

まず、世の中には難しい環境構築の話が多すぎる。

– フォルダごとに設定したら良い
– プロジェクトごとに変えられるように
– 設定を保存できる
– のちのちのためにrequirement.txtを作るんだ!

いやいや、僕らみたいな本当の初心者にはそれはいらないから、最短ルートだけ教えて下さい。という話です。
今現在の開発で要らないところでつまづいて、始められないのはもったいないと個人的には思っています。
最低限の設定をして、まがいなりにも動けば良い。

適当に準備した環境構築だと、未来的に・・とかマウントとってくる人もいるし、正しい指摘をする人もいるだろうけど、初心者がまず始めたいならとりあえずこれ!ということを書きました。早ければ10分もあればPython始められます。

*__始めよう、Python__*

とはいえ、コマンドプロンプトやBashのコマンドは少しは叩いたことがあるよ、というレベルの人向け。cdとlsとpwdくらい知ってるよ、という人ね。コマンドも1行も打ちたくないっていう人は、コ

元記事を表示

Ansible 自作モジュール作成 ~その1:引数受け取りたい人生~

Ansible使おうとしたら名前付きパイプ(“makefifo“)相当がなかったので自作モジュールを頑張ることにした。

# 参考サイト

– [Ansibleのモジュール開発(Python実装編)](https://dev.classmethod.jp/articles/ansible-develop-module-python/)
– すっごい分かりやすくて好き!
– [ansible コマンドでモジュール引数 ( パラメータ ) を複数渡す方法](https://qiita.com/YumaInaura/items/6e05d87858bd647d11ab)
– “ansible“コマンド実行時に複数の引数を与える方法

# 環境

“`bash
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)

$ ansible –version
ansible 2.9.7
config file = /etc/ansible/ansible.cfg
configured modu

元記事を表示

OTHERカテゴリの最新記事