Python関連のことを調べてみた2019年11月04日

Python関連のことを調べてみた2019年11月04日

自己回避ランダムウォークで一筆書きして楽しかった ~計算物理学I (朝倉書店)を参考にpythonを使って~

# 前置き
 タンパク質の構造のシミュレーション等に用いられる自己回避ランダムウォークのプログラムをpythonで作製したので紹介いたします。根本的な手直しができそうな気はしますが、楽しかったです。

# ランダムウォークとは
 ランダムウォークとは次に移動する点が無作為に選ばれる運動のことで、ランダムウォークを基礎としたモデルが様々な研究に使用されています。例えばアインシュタインが研究したことで有名なブラウン運動は水面に浮く花粉中の微粒子の不規則な動きのことですが、これもランダムウォークを使用したモデルでシミュレーションできる運動の一つです。
 今回のトピックである自己回避ランダムウォークとは、自分自身の通った経路を再び通らないようなランダムウォークのことです。例えば2次元長方形格子の格子点をランダムに一筆書きで移動する運動を記述します。実際の応用としては、自己回避ランダムウォークはタンパク質の構造をシミュレーションするために用いられることがあるそうです。

# 自己回避ランダムウォークのプログラムを作ってみた

 自己回避ランダムウォークのプログラムは、上記の性質から、①一度通った

元記事を表示

pipenvで作ったDjangoの環境でpythonを動かしてみる

# 概要
[pipenvの仮想環境にDjangoをインストールする](https://qiita.com/Ajyarimochi/items/04d895506b719219f240) で構築した仮想環境でDjangoのプログラムをとりあえず動かしてみます。エディタはVSCodeを使います。

### 参考
* Python Django 超入門 掌田津耶乃 著 秀和システム
* https://qiita.com/dynamonda/items/5a8129cd6e9cc139d94a

### 環境
MacOS 10.15
pipenv version 2018.11.26
Django 2.2.6
VSCode 1.39.2

# 手順
* Django のプロジェクトを作成する
* VSCodeがpipenvのpythonを参照するように設定
* djangoのサーバーを起動してみる
* サンプルプログラムを作成
* 動作確認

### Django のプロジェクトを作成する
pipenvの仮想環境(プロジェクト)を作ったディレクトリで、以下のコマンドを実行してpipenv

元記事を表示

Pythonでレポート作成とメール送信を自動化する

パートさんが日々、通信機器の稼働状況を専用画面で確認し、報告書を作成してメールで送信するという。
似たような業務は他の会社でも割とありがちだが、エンジニアからしたらそんなルーティンあり得ないので、ちょっとツールを書いてみたという話。

# 考え方
元となる情報はすべてデータベースにあることが分かっている。
なので、**データベースから生成したPDFファイルをメールに添付して送信するプログラム**をサーバ側で実装し、`cron`にでも登録しておけば良い。

# 実行環境

– Ubuntu 16.04
– MySQL 5.7
– Python 3.5

# 帳票の生成方法
Pythonのライブラリ**OpenPyXL**でExcelファイルに出力することも考えたが、
[【python + reportlab で 履歴書フォーマットPDFを作成】](https://qiita.com/chiba___/items/c91ba97864efceb81f4d)
の記事に触発されたので、**reportlab**でPDFファイルを出力することにした。

“`:インストール
pip3 insta

元記事を表示

[数値計算法,python]Eular法による常微分方程式の解法

#はじめに
常微分方程式とは独立変数t,とtに従属する関数y(t), 及び、そのn階導関数(n=0,1,2,…,N)を含む方程式のことです。
つまり、

“`math
g(t,y,y’,y”,y^{(3)},…,y^{(N)}) = 0 \hspace{50pt}(1)
“`
の形で記述可能な方程式のことです。

このような方程式はEular法(オイラー法)という数値解法により、解を近似できます。
実際の例を用いて説明していきます。

#Eular法を使うための準備
上の微分方程式$(1)$は、実はオイラー法を使うには適していない形になっています。
これをどうにかして下の$(2)$のような形に変形しなければなりません。

“`math
\frac{dx(t)}{dt} = f(t,x(t)) \hspace{50pt}(2)
\\ただし, x(t)=\begin{pmatrix}y\\y’\\y”\\…\\y^{(N-1)}\end{pmatrix}
“`

###実際の例

ばね定数$k$のばねの先端に質量$m$の質点のついた系を考えます。系に振動的外力がかか

元記事を表示

summpyで文章要約してみた

リクルートテクノロジーズが公開している文章要約ツールsummpyを試してみました。

summpy
https://github.com/recruit-tech/summpy

環境はUbuntu16.4です。
動作にはPython 2.7が必要。デフォルトでは入ってないのでanacondaで2.7の環境を整備します。

“`
$ conda create -n 2.7 python=2.7 anaconda
“`
ちゃんとインストールできたか確認

“`
$ source activate 2.7
(2.7)$
(2.7)$ conda info -e
# conda environments:
#
base /home/croso/anaconda3
2.7 * /home/croso/anaconda3/envs/2.7
3.5 /home/croso/anaconda3/envs/3.5
3.6 /home/c

元記事を表示

Lasso回帰を俺なりにがんばってみた

Lassoの意味を色々調べてみた

– Lassoの学習アルゴリズム
– 正規化の意味
– Lassoのフルスクラッチ実装(参考サイトあり)
– スパース化の可視化

https://github.com/yoyoyo-yo/MachineLearningFromScratch/blob/master/Descriptions/README_LassoRegression.md

元記事を表示

【AtCoder】深さ優先探索(DFS)の典型的な問題を解く

競プロ強くなりたいので、[このサイト(AtCoder 版!蟻本 (初級編))](https://qiita.com/drken/items/e77685614f3c6bf86f44#%E4%BE%8B%E9%A1%8C-2-5-5warshall-floyd-%E3%82%92%E4%BD%BF%E3%81%86%E5%95%8F%E9%A1%8C)を参考に、AtCoderの問題を解いてアルゴリズムの基礎固めしています。今回解くのは、[AtCoderのA-深さ優先探索](https://atcoder.jp/contests/atc001/tasks/dfs_a)。全探索の一種である深さ優先探索(DFS)の典型的な問題です。

### 問題
東西南北の長方形の街にて、途中の塀を通らず、道を通って、家から魚屋へたどり着けるかという問題です。
※ちなみにこの問題を幅優先探索(BFS)で解くと、辺の重みなしの最短経路問題になります。

### 解法
今回は再帰を使わず、スタックしていく方法で解きます。[Wikipedia](https://ja.wikipedia.org/wiki/%E6%

元記事を表示

機械学習モデルの予測値を返すAPIをDockerで作ってみた

# はじめに

Yellowbrickで精度を確認しつつ作った機械学習モデル[^1]を予測APIサーバのような形で活用してみたいと思い、Dockerで作ってみた。
Flaskについてはこちら[^2]、Dockerについてはこちら[^3]を参考にして、APIサーバーから応答が返ってくるところまでを目標にする。

# 環境

環境は以下の通り。

“`
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G8037
“`

Dockerのインストールについては[^4]を参考にした。
ログが結構長かったので、一部省略。

“`
$docker version
Client: Docker Engine – Community
Version: 19.03.4
API version: 1.40
Go version: go1.12.10
(省略)
Server: Docker Engine – Community
Engine:
Vers

元記事を表示

pythonでLinuxコマンド文字列を整形する汎用的なプログラム

# 背景
Linuxコマンドを用いて例えばCPU温度などを定期的にDBに追加しています。
この時にコードをなるべく少なくしようとコマンドだけで色々と調べたのですがなかなか難易度が高かったので作成しました。

# 仕様
汎用的に利用できるようにしたいのでpythonのFormatのような動きを実現させたい。

# コード
こうなりました。

“`python
import sys;
print(sys.argv[1].format(*sys.argv[2].split(” “)) )
“`
* 第一引数:Formatの指定文字列
* 第二引数:空白で区切られたFormatに入れる文字列

## 利用方法

“`sh
mosquitto_sub -t “#” -v |xargs -I@ python3 /home/hashito/command/text2format.py “insert into mqtt.msg (t,m,tm)values(\'{}\’,\'{}\’,UNIX_TIMESTAMP(NOW()))” @ | xargs -I@ mysql -e “@”
`

元記事を表示

AtCoder Grand Contest 040 参戦記

# AtCoder Grand Contest 040 参戦記

## A – Dividing a String

25分で突破したが、WA1なので30分扱い.

`><` の間は0で、`<>` の間は、左右の0から1づつインクリメントしてきた大きい方なので、以下みたいに2パスでやれば解ける.

“`python
S = input()

N = len(S) + 1
t = [0] * N
for i in range(N – 1):
if S[i] == ‘<': t[i + 1] = t[i] + 1 for i in range(N - 2, -1, -1): if S[i] == '>‘:
t[i] = max(t[i], t[i + 1] + 1)
print(sum(t))
“`

## B – Two Contests

全く手付かずで敗退.

元記事を表示

LINEにcurlでメッセージ送信する方法

# もくじ

– きっかけ
– LINEアカウント作成
– BOT作成と動作確認
– 送信先IDの取得
– 理解するためのイメージ図
– curlでメッセージ送信

## きっかけ

LINEで自動的にメッセージ送信するアプリでも作成しようと思い、LINEのAPIを利用してみることにしました。
curlでメッセージ送信できないかなあ、なんて思いながら作業を開始しました。
結果、LINE_API + AWS(APIGateway + lambda)を利用して、curlでメッセージ送信ができました。
その時のノウハウをメモしておこうと思い、また、いまいち既存の情報だと個人的にピンとこなかったこともあって、投稿しました。

## LINEアカウント作成

まずは普通にLINEのアカウントを作成します。
LINEは「ID」「パスワード」をシステムに登録しなくてもアカウントを作成できますが、「ID」「パスワード」を登録して、LINEアカウントを作成してください。
もうすでに作成してますって人は、この作業は不要です。

## BOT作成と動作確認

次に、BOTを作成します。
つまるところ、開発用

元記事を表示

新入社員がWebサービスを個人開発してみた

##作ったサービス
[AtoP](https://atop.band)
[https://atop.band](https://atop.band)
バンドのホームページを作ることができるサービス

##なぜ作ろうと思ったか
今年SIerに新卒入社し、Webサービスの運用・保守開発をする様になった。
バグ改修、追加開発を行なっていく中でプログラムに関しては多少理解できるようにはなったが、Webサービスがどのような仕組みで動いているのか理解できていないと感じた。
そこで、1からWebサービスを作ってみることで理解できるのではないかと思い開発を始めた。

##なぜこのテーマにしたか
アマチュアのバンドは、TwitterとInstagramのアカウントは作るが、ホームページは作らない場合が多いと感じた。
(ホームページ制作はハードルが高く感じるのだろうか?)

アマチュアのバンドの情報がまとまっているサイトが欲しかった。

##自分のスキルセット
PHP,MySQL
 学生時代にちょっと触った

C#,SQL Server,Git
 業務で使用

##今回使用した技術・サービス
Python

元記事を表示

【django】プロジェクト内のcssが読み込めない

# 事象
ローカル開発環境にてDjangoの管理サイトにアクセスしましたが、
以下のように、管理サイトでcss(静的ファイル)が読み込めませんでした。

![django_admin_no_css_login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251749/c3a8077d-f881-2cee-bb13-19f5d271360b.png)
![django_admin_no_css.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251749/cb740567-914f-a30f-7601-f9e55e1c773b.png)


## 前提条件

“`
Python 3.7.4
Django 2.2.6
virtualenv 16.1.0
“`

# 解析
## HTTPログ

“`
$ python manage.py runserver
Performing system checks…

元記事を表示

それもしかして再帰出来るんちゃうの

#初めに

以前にも運動学自体の記事は書いたのですが,n軸に対応するときに,賢い書き方はないのかと考えていたところ再帰することができるのではないかと考えた所です.

#再帰させたい処理

“`arm.py
x1 = L1 * np.cos(deg1)
y1 = L1 * np.sin(deg1)
x2 = x1 + L2 * np.cos(deg1+deg2)
y2 = y1 + L2 * np.sin(deg1+deg2)
x3 = x2 + L3 * np.cos(deg1+deg2+deg3)
y3 = y2 + L3 * np.sin(deg1+deg2+deg3)
“`

いかにも再帰できそうな雰囲気ありません???

#再帰させてみた

“`arm.py
def test(x,y,deg,L,n):
if n < len(x)-1: x[n] = L[n]*math.cos(deg[n]) + x[n-1] y[n] = L[n]*math.sin(deg[n]) + y[n-1]

元記事を表示

Pytorchを使って日向坂46の顔分類をしよう!

# はじめに
 研究室に所属してからというもの、独学が正義の情報系学問の世界(偏見?)。とりあえず機械学習ライブラリ「Pytorch」の勉強をしなければ…と思い、最近推している日向坂46の顔分類に挑戦しました!下記のように、入力された画像に対して、画像内の人物の名前を特定することを目指します。

|入力|出力|
|:—:|:—:|
|IMG_1210.jpg|IMG_1210.jpg|
基本的には、

[mnist examples

元記事を表示

令和時代のPython作図ライブラリのデファクトスタンダードPlotlyExpressの基本的な描き方まとめ

# 初めに
![plotly (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/175024/6898f6f5-e49a-3526-b03a-bafe26e54221.png)

javascriptベースで手軽に対話的な操作が可能な作図が出来る[Plotly Express(公式サイト)](https://plot.ly/python/plotly-express/)というライブラリが少し前に公開されたのを見つけました。
今までの静的な作図とは明らかに異なる次元のポテンシャルを感じたので、備忘録を兼ねて基本的な可視化手法の描き方をまとめました。
参考までに、matplotlib+seabornで同様の図を書いたパターンと比較しています。

「基本的な可視化手法」は、以前書いた[「探索的データ解析における正しい可視化手法の選び方と描き方」](https://qiita.com/hanon/items/33488ed4fc4ece7e1aec)に準拠しています。

# Plotly Expressと

元記事を表示

Deep Learningの実装を始めるのに最適なCouseraのTensorFlow入門コース

今まで、CouseraのAndrew Ng先生の[Machine Leaning](https://www.coursera.org/learn/machine-learning?)を受講したり、有名な[ゼロから作るDeep Learning](https://www.oreilly.co.jp/books/9784873117584/)を読み、本にしたがってコードを書いたりしていた。

ただ自分で新たにDeep Learningのネットワークを作って実装をする際になにから始めるかが不明だった。そんなときに以下のコースを見つけ、受講してみたら予想以上に良かった。
[Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning](https://www.coursera.org/learn/introduction-tensorflow/home/info)

# コースの特徴
– 数学的な説明はほぼない
– 機械学習について背景知識は必要
– 内容はかなり入門

元記事を表示

Python csvデータをPandasで読み込む ⇒Matplotlibでグラフ化

Python csvデータをPandasで読み込んで Matplotlibでグラフ化するまでのコードです。
csvデータの読み込みについては汎用性を高くするため,パスを選択し,読み込むことが可能です.

Python3.7.3です.以下コードになります.

# モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# ファイル選択ダイアログの表示
root = tkinter.Tk()
root.withdraw()

# ファイルの拡張子 fTyp = [(“”,”*”)] or fTyp = [(“”,”*.csv”)]
fTyp = [(“csv-file”,”*.csv”), (“All-file”,”*”)]

# フォルダパスを取得
iDir = os.path.abspath(os.path.dirname(__file__))
tki

元記事を表示

pipenvの仮想環境にDjangoをインストールする

# 概要
現代はframeworkを使った開発が当たり前になっています。Pythonの場合「Django(ジャンゴ)」というframeworkが良く使われています。通常なら複雑行のプログラムで実現する処理を、Djangoを使えば1行で実装できるなど、frameworkはプログラミングを楽にしてくれます。

Djangoをインストールする方法はいろいろありますが、今回はpipenvというツールを使う方法を纏めます。pipenvはpythonが動く仮想環境(プロジェクトと呼びます)を作成、管理するツールです。コンピュータに直接環境を構築せず仮想環境とすることで、1台のコンピュータで複数の環境を使い分ける事ができます。

### 参考
https://qiita.com/anvinon/items/5d9c128ef8b65b866dfe
https://qiita.com/nochifuchi/items/4fe0164f0d8949cf11b7

### 環境
MacOS 10.15
Homebrew 2.1.15
固定インターネット回線

# 作業手順
* pipenvをインストール

元記事を表示

IfcOpenShell pythonバインディングのことはじめ

# やりたいこと
表題の通りですが、[IfcOpenShell](http://www.ifcopenshell.org/python.html)というのはIFCを解析できるオープンソースライブラリで、もともとC++で書かれているけれど、Pythonバインディングも出ています。IfcOpenShellのツール群の中には、IfcConvertというものがあって、IFCのジオメトリ抽出が可能になっている。OBJ、IGES、DAE、STLなど様々なフォーマット変換が可能であり、GUIDや名前で特定の形状のみ抽出することもできます。一般的にはこれで十分なのですが、IFCの属性情報と形状を使って、色々なことをしようとすると、どうしても直接ジオメトリやトポロジといった3Dデータをいじりたくなります(ふつうはならないけどね)。

その場合は、[OpenCASCADE](https://www.opencascade.com/)と呼ばれるライブラリ(CADカーネル)を使うのが一般的で、実際ライブラリにも含まれています。このライブラリは、FreeCADなどに用いられる老舗のオープンソースライブラリで、パ

元記事を表示

OTHERカテゴリの最新記事