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

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

Djangoのチュートリアルを読んでいく!【その3 Django初心者】

# はじめに

私はプログラミング歴1年の初心者です。
実務でWebサイトのコーディングを1年間行ってきました。
そろそろシステム開発もできるようになりたいということで
LaravelやReactをこれから勉強していこうと思っております。

# 今回の目的

Djangoでアプリを実際に作っていく流れを学ぼうと思います。
公式チュートリアルを読んでいきます。

# 目次

1. アセット
1. 管理画面のセット

# 実践

## アセット

### スタイルシート

“`terminal
# polls/staticディレクトリを作成する
$ mkdir polls/static

# polls/static/pollsディレクトリを作成する
$ mkdir polls/static/polls
“`

“`polls/static/polls/style.css
# スタイルをつける
li a {
color: green;
}
“`

“`polls/templates/polls/index.html
# 上部に追加する
{% load static %}

元記事を表示

XenonPyをゼロから理解していく②

## はじめに
**XenonPyのチュートリアルのDescriptor calculationについて解説します。**XenonPyの概要とチュートリアルの一部(Sample dataとData access)の解説については[こちら](https://qiita.com/oki_kosuke/items/516bd425bcf1edfb81b6)の投稿を参考にして下さい。

※マテリアルズインフォマティクス関係の内容を他にも投稿していますので、よろしければ[こちら](https://qiita.com/oki_kosuke/items/34b1071224953776c211#%E6%8A%95%E7%A8%BF%E4%B8%80%E8%A6%A7)の一覧から他の投稿も見て頂けますと幸いです。

## 記述子計算
[公式ドキュメント](https://xenonpy.readthedocs.io/en/latest/tutorials/2-descriptor.html)の”Descriptor calculation”に沿って解説します。

– XenonPyには記述子計算のイン

元記事を表示

第5回 今更だけど基礎から強化学習を勉強する TRPO編(IS、KL距離、ヘシアン、共役勾配法)

Actor-Criticの基礎的な手法の1つであるTRPOを実装してみました。

[第4回 連続行動空間編](https://qiita.com/pocokhc/items/0872539ad9d981847595)

※ネット上の情報をかき集めて自分なりに実装しているので正確ではない可能性がある点はご注意ください
※ライブラリはTensowflow2.0(+Keras)を使っています。

# コード全体
本記事で作成したコードは以下です。

+ [GoogleColaboratory](https://colab.research.google.com/drive/1YESI62cvr0kVS1rEJPaik1jLrdkrbOrL?usp=sharing)

# TRPO(trust region policy optimization)

第2回で紹介した方策勾配法(Policy Gradient)は以下でした。

$$
\nabla J(\theta) \propto E_{\pi_\theta} [ log \pi_{\theta}(a|s) A^{\pi_\the

元記事を表示

AIシステムトレード開発

http://1969681.blog66.fc2.com/

#5/16  RSI_BREAKOUTのPYTHON版

以下、ブログ掲載記事の転記です。
http://1969681.blog66.fc2.com/blog-entry-611.html

#ポイント

あえてポイントだけ書くとすると・・・

* チャートは mplfinance を使用。 
参考資料:https://saturday-in-the-park.netlify.app/tradingtools/06_plotdailychart/

* RSIはHI,LO,CLOSEの各RSIの平均値を使用した。 
参考資料:https://www.mql5.com/ja/code/21823

#MT4→Js/Pythonへの移植に関して

 今回、検討した内容に関しては、特段言及する必要もないが、Pythonを使うことで、ずいぶんとMT4をいじくりまわすよりも、やりやすかった。特にデバッグなどが、慣れたVSCODE+PDBの環境なので、サクサクと進めることができた。

 ざくっとかかった工数を書くが・・・

* JS

元記事を表示

scikit-learn付属のデータセットをいつでも使えるように準備しておく

scikit-learnには、外部のWebサイトからファイルをダウンロードする必要のない小さな標準データセットがいくつか付属しています。
この付属のデータセットをいつでも使えるように準備しておきます。

#####情報元
公式
https://scikit-learn.org/stable/datasets/toy_dataset.html
#####環境
python: 3.7.3
sklearn: 0.20.3
numpy: 1.16.2
scipy: 1.2.1
Cython: 0.29.6
pandas: 0.24.2

#####データセットの種類
|データセット|取得方法|用途|
|—|—|—|
|ボストン市の住宅価格データ|load_boston(*[, return_X_y])|回帰|
|アヤメの品種データ|load_iris(*[, return_X_y, as_frame])|分類|
|糖尿病患者の診療データ|load_diabetes(*[, return_X_y, as_frame])|回帰|
|数字の手書き文字データ|load_digits(*[,

元記事を表示

yukicoder contest 295 参戦記

# yukicoder contest 295 参戦記

## [A 1505 Zero-Product Ranges](https://yukicoder.me/problems/no/1505)

0になるものを数え上げるのは大変なので、1になるものを数え上げて引けば良い. 0で分割されたそれぞれのブロックについて、その長さをniとすると、それぞれの組み合わせの数は ni+1C2 となる.

“`python
N, *A = map(int, open(0).read().split())

c = 0
l = 0
for i in range(N):
if A[i] == 1:
continue
t = i – l + 1
c += t * (t – 1) // 2
l = i + 1
t = N – l + 1
c += t * (t – 1) // 2
print((N + 1) * N // 2 – c)
“`

A を文字列として扱っ

元記事を表示

pythonでGMLタグ内の要素、テキストを取得する

gmlファイルからすべての座標を取得することはできたが、今のままでは区によって分けることができない。
![qiita11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641690/32869270-3661-d8a2-e065-e7e9fe731dd3.png)

江東区を見たらわかるように、一つのポリゴンでできているわけではなく、人工島などによって複数のポリゴンで形成されている。
つまりポリゴンは23個で形成されているわけではない。
23個で計算していたため現在のデータは2次元配列になっているのだが、3次元に変更しなければならない。
なので再度gmlからデータを引っ張り出し作り直すことに。

中央区を例にgmlの内容を記載。

“`xml:map.gml

ABC201

#はじめに
こんばんは

京都に住んでいる修士2年の大学院生です.
明日というか今日は朝からバイトなので心が憂鬱ですが、頑張ってこの記事を書きます.本日は土曜日ということで朝から勉強しようと思いつつ、のんびりしていたら夕方になっていました.とりあえずABC201には出場しようと思い、だらけきった体をたたき起こしパソコンに向かいました.

今回はこんな感じでRatingは上がてくれました.よかったです.しかし、一向にD問題以降は安定して解けないですね.このままでは緑まで上がるのに時間がかかりそう……

![スクリーンショット (124).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1465908/747fd8c3-e7a0-7554-60d9-c363504e28ea.png)

以下ABC201のリンクです.[https://atcoder.jp/contests/abc201]
#全体の感想
A、B、C問題はそこまで難しくありませんでした.しかし、BC問題で雑なコードを書いてしまい、時間をロスしてし

元記事を表示

pythonでの作業用メモ

pythonでデータ操作を行う時のコードメモです。
コードスニペット的な感じで作業時にコピペして使うようなのであんまり説明とか入れないです。
緩めに不定期更新します。

# 日付操作

### 先月の情報を取得

“`python

# ライブラリ読み込み
import datetime

# 本日を取得
today = datetime.datetime.today()

# 本日の日付からその日付を引くことで、先月末日を算出
last_month = today – datetime.timedelta(days=today.day)

# 先月の年月情報のみを取得
last_month.strftime(“%Y-%m”)

“`

# pandasでのデータ操作

“`python

# ライブラリ読み込み
import pandas as pd

“`

### dfから指定した項目を取り出す(複数項目)

“`python

### 処理必要な項目に絞る(dfの中に色々な項目が入っていて、以下ではタスク、状態、完了日の3項目を抽出する
df_select =

元記事を表示

EC2の一覧を必要な情報だけ絞ってS3へ日次保管

### 実装の方法

LambdaのPython(boto3)を使います。
1日1回実行するトリガーとして、EventBridgeを使います。

### 実装できると何がうれしいのか

**1点目**
EC2のdescribe_instances APIは、取得結果が冗長なデータ構造となっていて、Javascriptなどで取り込んだ時にやや扱いにくいです。
特に、`Reservations[*].Instances[*]` の階層の深さと、タグの構造が `[{‘Key’: ‘タグキー名’ }, {‘Value’: ‘タグの値}]` となっている点が冗長でしょうか。
階層を単純な1次元配列(Pythonのリスト)とし、欲しい情報だけに絞ることで、プログラムから扱いやすくなります。

**2点目**
AWSのAPI/CLIでは、**”現時点の”**EC2の一覧を取得できますが、**”x月x日時点の”**EC2の一覧を取得したいとなった場合に、急に困ることになります。
1日1回Lambdaを実行して蓄積しておくことで、簡単に調べられるようになります。

### IAMロールの作成

IAM

元記事を表示

【Python×Tkinter】パス指定ではなくGUIでファイルを選択する方法

#はじめに
普段Pythonで何かファイルを操作するとき、ディレクトリを移動したりパスを指定してファイルを読み込むことが多いと思います。しかし自分が作ったプログラムを他人(非プログラマー)が使うとなったら、人によっては自分でコードを書き換えてパスを変えるとか難しいですよね。また自分で使うにしても、読み込むファイルが毎日変わるものであればいちいちコードを書き換えるのは面倒ですよね。

そんな方のために今回はGUIからファイルを選択できるようにする方法を解説します。

#準備
“`python
import tkinter
import tkinter.filedialog
import tkinter.messagebox
import os
“`
Tkinterというライブラリを使っていきます。読み方は「ティーキンター」です。
PythonのGUI系ライブラリの中ではかなり有名で、よく使われているものだと思います。
ちなみにTkinterだけインポートしてもファイルダイアログとメッセージボックスは使えないので、この2つもtkinter単体とは別にインポートします。あとエクスプロー

元記事を表示

Python boot camp by Dr.Angela day15

#Mission>> Virtual Starbucks Machine
コーヒーの自動販売機を作成してみよう!
__機能__
__・3つの味があり、レシピがそれぞれ異なる__
☑Latte(450円):200ml water, 24g coffee, 100ml milk
Coffee(300円):100ml water, 18g coffee →こいつだけmilkのkeyがないのでどうするか
☑Mocha(400円):200ml water, 24g coffee, 150ml milk
__・小銭とお札で販売する__
☑使用できるのは 50 / 100 / 500円玉 と1000円札
☑それぞれの枚数を聞いてくる
☑入金合計が注文した料金に足らなければ商品は渡さず、全額返金
☑入金合計が注文した料金に足りるのであれば、お釣りを計算して返してくれる
__・自動ディスペンサー__
☑タンクに water700ml, coffee100mg, milk300ml備蓄してある
☑タンク内のwater or coffeeが”0″になったらもう何もつくれない
→ これは注文来て計算し

元記事を表示

任意の機械学習n本ノック

# はじめに
こちらは機械学習にハマった人がひたすらに機械学習してアウトプットしていく記事になります。100本目指す。

# 環境
[こちら](https://qiita.com/bobi/items/2db49d50d5953e85fb48)を参照してください。基本的にjupyter notebookを使います。

# チートシート
![Azure_cheatsheet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502866/f6f52101-5bde-e200-7097-678ebf53f028.png)
とりあえず上のチートシートを一通りいろんな記事を参考にしながらやってみようと思います。データセットはメジャーなものからkaggleなどに落ちてるやつを使おうと考えています。

# 最後に
リクエストやアドバイス等あればガンガンください。以上よろしく。

元記事を表示

JSONファイルを読み込んで、辞書型配列をCSVに保存する

pythonを理解していないという事もあり、意外とはまってしまった。
調べると簡単に出てくるのだが、無駄に粘って時間をロス。

“`python:saveCSV.py
import json
import csv
import os
f = open(‘hoge.json’, ‘r’, encoding=’utf-8′) #encoding=’utf-8’がないと読み込めない
data = f.read()
#jsonファイルからとってきたデータ
#[{“code”:”13101″,”province”:”東京都”,”city”:”千代田区”},{“code”:”13102″,”province”:”東京都”,”city”:”中央区”}]
dict_list = json.loads(data) #jsonを辞書型リストに変換
#[{‘code’: ‘13101’, ‘province’: ‘東京都’, ‘city’: ‘千代田区’}, {‘code’: ‘13102’, ‘province’: ‘東京都’, ‘city’: ‘中央区’}]
file_name = ‘hoge’
ex

元記事を表示

Biopythonを使ったバイオインフォマティクス(主に構造バイオインフォについて)

# BioPython

近年、データサイエンスの世界でよく使われるようになったプログラミング言語**Python**ですが、C言語などと比べて簡易な文法や文字列操作の利便性から、生命科学の世界、特にバイオインフォマティクスの世界にもPythonは浸透してきました。1999年から開発が始まった**BioPython**は生命科学における特有のデータ処理 (DNA・RNA・タンパク質配列や各種データベースとの連携など) を容易にしてくれます。

## Pythonのインストール方法

### macOSの場合

Pythonのインストール方法は色々ありますが、まずはHomebrewでインストールする方法を推奨します。Homebrewを一度インストールしていれば、引き続きターミナルから

“`bash
brew install python@3.9
“`

とすることで簡単に最新のPython 3.9.xをインストールすることができます(3はメジャーバージョン番号、9はマイナーバージョン番号、xはビルド(またはメンテナンス)バージョン番号と呼ぶ)。

### Ubuntu 20.04の

元記事を表示

flaskでhello worldができないときの対処

flaskでhello worldするまでのメモです。

#動いていたhello.pyに不具合

下記のコードが突然動かなくなりました。

“`hello.py
from flask import Flask
app = Flask(__name__)
@app.route(‘/’)
def index():
return “Hello, World!”

if __name__ == ‘__main__’:
#app.run(host=’0.0.0.0′,port=8000)
app.run(host=’0.0.0.0′)
#app.run()
“`

実行コマンド

“`コマンドライン.
(pyb) $ python hello.py
“`

いままで実行すると、ブラウザで見れていたのですが
突然、不具合を起こしました。
まだhelloworldとかコピペしかしてないのに…。

ググりながら、
0.0.0.0を127.0.0.1にしたり
ポートを8000にしましたが、
ダメでした。

![image.png](https://qiita-im

元記事を表示

pythonでCSVファイルを作成

CSVに保存する方も一応勉強してみた。
では基本の流れ。

“`python:saveCSV.py
f = open(‘new.csv’, ‘a’) #modeをaにすることで既存のファイルに追記
w = csv.writer(f) #writerに書くファイルを指定
w.writerow([‘num1’, ‘num2’, ‘num3’]) #rowは一行だけ記入される
w.writerows([[1,2,3],[4,5,6],[7,8,9]]) #rowsは一次元目の配列の数だけ記入される
f.close() #開いたファイルは閉じよう

“`

作成されたCSV

“`csvs:new.csv
num1,num2,num3

1,2,3

4,5,6

7,8,9

“`

ここで大事なのは、rowは一次元配列を、rowsは二次元配列を入れる必要がある。
もしrowに一次元配列ではなく文字列(w.writerow(‘num1’))を入れて実行した場合、下記のようになる

“`
n,u,m,1

1,2,3

4,5,6

7,8,9

元記事を表示

pyenvが動かなくなった

pyenvをupdateしたら、以下のメッセージが出てsystemのpythonが使われるようになった。

“` bash
WARNING: pyenv init – no longer sets PATH
“`

以下のサイトを参考に設定を変更した。

https://github.com/pyenv/pyenv/issues/1915

“` bash:/etc/profile.d/pyenv.sh
eval “$(pyenv init –path –no-rehash)”
# eval “$(pyenv init – –no-rehash)”
“`

元記事を表示

膨大な通信ログの調査依頼をPythonで自動化してみた

このプログラムの趣旨

このプログラムは、膨大なログの中から任意のIPアドレスを探し出すプログラムです。

プログラム作成の背景

・お客さんから特定の通信先(複数個)とのログがないか確認して欲しいと依頼を受ける。
・対象のログフォルダを確認してみると、1ファイルあたり数千行のログファイルが数千個存在。
・手作業でのログ調査をあきらめ、空を見上げる。
・Python触ったことあるし、なんとかしてプログラムで出来ないものか考えてみる。
・作ってみた。

プログラム処理のざっくり概要

・特定のフォルダ内のファイルを時系列順にソート
・ファイルを1つずつ読み込み、リスト化する
・確認したいIPアドレスと、リストの中身を比較する
・リスト内にあれば、見つかった旨をCSVに書き込む

プログラムの中身

“`log-finder.py
import glob
import csv
import os
import re

”’
「XXXX」フォルダに入っているログに
任意のIPアドレスとの通信がないか確認するプログラムです。

元記事を表示

Optunaで乱数シードを固定する方法

# 概要
Optunaはベイズ最適化を利用した最適化ライブラリで、
その性能とAPIの使い勝手の高さから、機械学習の**パラメータチューニング**等でよく利用されています。

このOptuna、以下の現象に困った経験のある方も多いかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/610167/45fca2e1-6f57-7f18-81b6-c7983430bd86.png)
そう、**繰り返すと結果が変わってしまう**ことです!

繰り返しても同じ結果とするためには、**乱数シードを固定**する必要があります。
本記事ではその方法を解説します

# なぜ結果が変わる?
Optunaでは最適化の過程で乱数を利用しており、
回ごとに乱数がランダムに変わるので、最適化の結果も変わってしまいます。

生成される乱数の値を回によらず同じとするためには、**乱数シード**を固定する必要があります。

# 乱数シードの固定方法
以下のように、
**・create_studyメソッド実行時の

元記事を表示

OTHERカテゴリの最新記事