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

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

metaflowでパイプラインのデバッグ

#Metaflow
[Metaflow | https://metaflow.org/](https://metaflow.org/)
スクリーンショット 2020-06-16 11.32.58.png

#パイプラインの実装

“`python:train.py

from metaflow import FlowSpec, step, Parameter

class TrainingPipeline(FlowSpec):
param_config_str = Parameter(‘config’,
help=’Training config json str.’,
default=’

元記事を表示

深層学習入門 ~学習則編~

#対象者
前回の記事は[こちら](https://qiita.com/kuroitu/items/ea6ed8f614e65ec44976)です。
本記事では学習則の実装を見ていきます。と言っても[ここ](https://qiita.com/kuroitu/items/36a58b37690d570dc618)で既に本体は実装していますので併せてご覧ください。

#目次
– [学習則](#学習則)
– [学習則理論](#学習則理論)
– [学習則実装](#学習則実装)
– [`__init__`メソッドの実装](#__init__メソッドの実装)
– [おわりに](#おわりに)

#学習則
まずはいつも通りスカラで考えていきます。
ニューロンオブジェクトは変数$w, b$を持ちますね。

“`math
y = \sigma(xw + b)
“`

ここで、入力$x$を定数だとみなすと

“`math
y = f(w, b) = \sigma(xw + b)
“`

のように書くことができます。
つまり$w, b$の値を適切に変えて目的とする値$y^{\sta

元記事を表示

「PySpark」: Alibaba Cloud CentOSインスタンスにPySparkを設定する

このチュートリアルでは、CentOS 7.xオペレーティングシステムが動作する**Alibaba Cloud**ECSインスタンスで**PySpark**を設定する方法をステップバイステップで説明します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/setting-up-pyspark-on-alibaba-cloud-centos-instance_595148)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#前提条件
始める前に、Alibaba Cloud上にPySparkノードを設定するために必要なリソースは以下の通りです。

1、アリババクラウドECSインスタンス1台
2、ElPを1本。
また、ニーズに応じて追加のものが必要になるかもしれません。例えば、追加のストレージ、SLBインスタンス、または他のコンポーネントが必要になるかもしれません。特にこのチュートリアルでは、必要最小限のリソースを使用していますが、マスターとスレー

元記事を表示

[Python] Matplotlibで3Dグラフのlimit axis

Matplotlib で3Dグラフを作成するとき、グラフの軸のサイズを設定しつつ軸の比率を統一したいが “`plt.axes().set_aspect(‘equal’)“` のような関数が 3D plot には存在しないので、その解決方法を。
(軌道のプロットなどで便利)

例えば、このプロットについて

“`Python
# plot in 3D of candidate branches
fig = plt.figure(figsize=(12,10))
plt.rcParams[“font.size”] = 20
ax = fig.gca(projection=’3d’)
# mass
ax.plot_wireframe(xperilune_m2, yperilune_m2, zperilune_m2, color=”k”, label=’m2′, alpha=0.1)
# LPO trajectory
ax.plot(dynmatLPO[“x_arr”]*Lstar, dynmatLPO[“y_arr”]*Lstar, dynmatLPO[“z_arr”]*Lstar,

元記事を表示

筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (14)

前回
[筑波大学の機械学習講座:課題のPythonスクリプト部分を作りながらsklearnを勉強する (13)](https://qiita.com/legacyworld/items/784d362cdf6c513d28b6)
https://github.com/legacyworld/sklearn-basic

# 課題 6.4 ロジスティック回帰による予測
今回は初めてscikit-learnを使用しなかった。
Youtubeでの解説は第7回(1) 25分50秒あたり
問題としては難しくはないが、一つ注意点。

“`math
w^T = (w_0,w_1,w_2),
X = \begin{pmatrix}
x_{11}&x_{12}&\cdots&x_{110} \\
x_{21}&x_{22}&\cdots&x_{210} \\
1&1&\cdots&1
\end{pmatrix} \\
w^TX = 0はx_1,x_2の平面上でw_0x_1 + w_1x_2 + w_2 = 0と表される。変形して\\
x_2 = -\frac{w_2}{w_1} – \frac{w_0

元記事を表示

【python】pandasの表をエクセルファイルに出力する方法

#【python】pandasの表をエクセルファイルに出力する方法

to_excelメソッドを使って、DataFrame型の表をexcelファイルとして出力する。

**目次**

1. [ライブラリのインストール](#ライブラリのインストール)
2. [ファイル名を指定して出力](#ファイル名を指定して出力)
3. [シート名を指定して出力](#シート名を指定して出力)
4. [ヘッダーを表示しない](#ヘッダーを表示しない)
5. [インデックス(行名)を表示しない](#インデックス行名を表示しない)
6. [ヘッダーおよびインデックスを表示しない](#ヘッダーおよびインデックスを表示しない)
7. [上部に空白行を入れる](#上部に空白行を入れる)
8. [左に空白列を入れる](#左に空白列を入れる)
9. [小数点の最大表示桁数を指定](#小数点の最大表示桁数を指定)
10. [NaNを任意の値で埋める](#nanを任意の値で埋める)
11. [ExcelWriterでできることと注意点](#excelwriterでできることと注意点)
12. [シートを2枚以上作成する]

元記事を表示

【python】with文とは?

#【python】with文とは?使い方と意味を実例で解説

ExcelWriterの解説にwithが使われており、
意味と使い方を調べたので、そのまとめ。

・[公式ページ(概要)](https://docs.python.org/ja/3/reference/compound_stmts.html#the-with-statement)
・[公式ページ(実例)](https://www.python.org/dev/peps/pep-0343/)

##with文の用途と内容
**■用途**
**「開始」と「終了」がセットになった処理に使う**。

・ファイルを開いて読み書きを行う。
・DBにアクセスし処理後に終了するなど。

**■処理内容**
「開始」と「終了」がセットになる処理で、
with文を使って「開始」すると、処理実行後に**自動で「終了」**してくれる。

**■メリット**
・終了の処理を書かなくていい。
・終了の処理を書き忘れることがない。

##withの基本構文
“`
with ①開始処理 as ②変数:

元記事を表示

『データサイエンス100本ノック』をやってみる①

データサイエンス初学者のための実践的な学習環境
「データサイエンス100本ノック(構造化データ加工編)」をGitHubに無料公開
https://digitalpr.jp/r/39499

こちらをやってみようと思います。
ちなみにRは全くわからないのでやらないと思います。

#環境
・Windows10
・Docker for Desktop
・Git

#環境構築
Docker起動

“`
wsl -e docker-desktop
“`

Gitからクローン

“`
git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess.git
“`
Dockerをビルド

“`
cd 100knocks-preprocess
docker-compose up -d –build
“`

しばらく時間がかかります・・・
なんかいろいろ落としてるぽい・・・

##環境構築の注意点
Docker Toolboxを使っている場合、アクセス先のURLが変わります。
http:/

元記事を表示

1行でじゃんけんゲームをつくる(python)

python3.8+ onlyです
# コード

“`python
print(“a|b|c”*-~-((a:=input(“a:パー\nb:チョキ\nc:グー\n”))in”abc”)or”Draw”*((b:=__import__(“random”).choice(“abc”))==a)or”You “+”lwoisne”[b+a in”abbcca”::2],f”\nyou:{a} pc:{b}”)
“`

185Byteです

# 解説

最初に言っとくと多分もっと短くできると思います…

まあわかりやすくすると

“`python
import random

a = input(“a:パー\nb:チョキ\nc:グー”)
b = random.choice(“abc”)
if -~-(a in “abc”):
print(“a|b|c”)
elif a == b:
print(“Draw”)
else:
print(“win” if b+a in “abbcca” else “lose”)
print(f”you:{a} pc:{b}”)
`

元記事を表示

【メモ】機械学習

ゆっくりまとめていきます。

#回帰分析

– 単回帰
– 重回帰
– 多項式回帰
– 非線形回帰
– リッジ回帰
– ラッソ回帰
– ロジスティック回帰

#サポートベクトルマシン(SVM)
– 線形サポートベクトルマシン
– サポートベクトルマシン(カーネル法)

元記事を表示

AWS Lambda ローカル実行(デバッグ)、デコレータで例外処理統一、引数チェック等 with Python

AWS Lambdaをローカルで実行するサンプルを書きました。Dockerは使いません。

やること
1. 環境変数の読み込み pip install python-dotenv しておくこと
2. lambda_handlerに渡す event引数を記述したJSONファイル読み込み
3. デコレータで例外処理、引数チェックなどを統一する。複数のAWS Lambda関数を使うときに、共通ファイルにデコレータ関数を定義し、各々の関数でlambda_handlerを呼ぶたびにデコレータ関数を呼び出すようにする。そうすると、失敗時にイベント引数をs3等に保存しておけば再処理したり、またはイベント引数の共通チェックを行うという処理を統一できる。

#サンプル
./.env
./.event.json
./lambda_handler.py

.env 環境変数設定用

“`.env:.env
LogLevel=DEBUG
“`

.event.json イベント引数

“`json:.event.json
{
“body” : “{\”key\” : \”valu

元記事を表示

pytest-htmlでテスト関数のdocstringをレポートに出力する

テスト関数の詳細情報としてdocstringをpytest-htmlのレポートに出力する方法をまとめます。

## 1. conftest.pyを編集

testsディレクトリ直下のconftest.py(なければ作成)に以下の設定を追記します。
テーブルヘッダーの3列目にタイトル、テーブルボディの3列目にテスト関数のdocstringの情報を挿入しています。

“`python:conftest.py
import pytest
from py.xml import html

def pytest_html_results_table_header(cells):
cells.insert(2, html.th(‘Description’))

def pytest_html_results_table_row(report, cells):
cells.insert(2, html.td(report.description))

@pytest.hookimpl(hookwrapper=True)
def pytest_runtest_makereport(

元記事を表示

turtleを使って線の描画をしてみた

#Turtleモジュール
ペンを持った亀を操って絵を描くことのできるタートルグラフィックスのPython版です。
子ども向けにはscratchなどが有名ですが、これも使いようによっては良い教材になりそうです。
そういう自分が、この描画がすごいと思って使ってみたのですが…

– こんな線画が描けます(森か林みたい)

スクリーンショット 2020-06-15 23.35.58.jpg

ではサンプルコードです。forestっていう関数を作成しておきましょう。

“`Python:turtlePicture.py
#
# turtle を import して線描画する
# 2020.06.15 ProOJI
#
import turtle

# kameSan オブジェクト生成
kameSan = turtle.

元記事を表示

[Python] 英語の人名をランダムに大量生成するだけ

# はじめに

検証などで気持ち大きめのデータベースが欲しいことがあるのですが、書籍/記事サンプルでは数レコードしかないことがあり。なら勉強もかねて作ってしまえ…ということで、名前の生成部分を作ってみました。

# 用意するもの

[こちら](https://github.com/smashew/NameDatabases)のリポジトリから、元となるファイルをお借りします。
`NamesDatabases/first names/us.txt` と `NamesDatabases/surnames/us.txt` を、同じフォルダに配置しておきます。同名になってしまうので、`us_firstnames.txt` と `us_lastnames.txt` に変更しています。

# コード

“`python
### import Modules
import random

### Preparation
# どのくらいの名前を生成するか
NUMBER_OF_NAMES = 10000

# Reference:
# https://github.com/smashew/NameDat

元記事を表示

平衡二分木を実装する

# 回転のいらない平衡二分木を実装したい

Python では組み込み関数に平衡二分木を扱えるものがないので自作する必要があります。よくある平衡二分木では、平衡を保つために「回転」の操作をしないといけないのですが、この処理が実装的にもパフォーマンス的にも結構重いので、なるべく回避する方法を使いたいです。
ここでは、 **ピボット値** を設定することで回転のいらない平衡二分木を実装する方法を紹介します。 Python のコードも示します。

## やりたいこと

– 整数値を取る平衡二分木を作る
– 取りうる整数値 $x$ の範囲を $1\le x< L$ とするとき、構築は $O(1)$ 、挿入・削除・検索は $O(\log L)$ でできる なお本稿では簡単のため、同じ値を複数個追加することはない(すでに存在する値を追加しようとした場合は何も起きない)としています。 必要な場合、①各整数の個数を管理するための Dict を使う、②IDを末尾に入れて Unique にする、などによって容易に修正できます。問題例2でも扱います。

Python仮想環境でDjangoプロジェクトとアプリケーションを作成し、サーバ起動まで

ほぼ自分用メモです。

##Python仮想環境を作成する

“`
C:\Users\UserName> python -m venv my_venv
“`

my_venv: 仮想環境名

##Scriptsディレクトリに移動

“`
C:\Users\UserName> cd my_venv\Scripts
“`

##仮想環境に入る
“`
> activate
(my_venv) C:\Users\UserName>
“`

##pipをアップグレードする
“`
(my_venv) C:\Users\UserName> python -m pip install –upgrade pip
“`

##Djangoをインストールする
“`
(my_venv) C:\Users\UserName> pip install django
“`

##Djangoプロジェクトを作成する

“`
(my_venv) C:\Users\UserName> django-admin startproject myproject
“`
myproject: プロジェクト

[光-Hikari-のPython]06章-02 関数(引数と戻り値1)

#[Python]06章-02 引数と戻り値1
前節で関数を定義する際には以下のように行うと説明しました。

“`.py
def 自作関数名(引数):
関数を呼び出した際に実行される処理内容
“`

前回、この中の**引数**について説明しなかったので、それについて説明していきたいと思います。
また、本来関数は何か値を入れたら、その処理結果した結果を何か返すものです。値を返すといった、**戻り値**についても触れていきます。

##関数の引数
関数を定義して呼び出す際に、**引数**を関数に渡して処理を行うことができます。chap06を新たに作成し、その中に、samp06-02-01.pyというファイル名でファイルを作成し、以下のコードを書いてください。(前回のプログラムを少し改良しています。)

“`samp06-02-01.py
def greet_func(name):
print(‘関数内で実行しています’)
print(f'{nam

YouTubeLiveのチャットをniconico風にオーバーレイする

YouTubeLiveのチャット
sample.gif
この内容を動画から視線をそらさずに見たい.
というわけでPythonでYoutubeLiveのチャットを某動画サイト風に流すアプリケーションを作りました.

#実行例

【Djangoメモ】ログインユーザーの情報をフォームに事前にセットしたい

# やりたいこと
 投稿サイトで新規投稿する際、いちいち自分で自分の名前を打ち込むのではなく、ログイン中のユーザーの情報(自分の名前など)を事前にフォームにセットし、名前を打ち込む手間を省きたい。

## 1.モデルを用意する
“`python:app/models.py
from django.db import models
from django.contrib.auth import get_user_model

class Post(models.Model):
author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
title = models.CharField(max_length=100)
content = models.TextField()

def __str__(self):
return self.title
“`
 Postモデルを用意し、3つのフィールド〔投稿者、タイトル、内容〕を設置する。
 `author =

certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)’)]

#エラーが出た
Discordbotを試そうとしたらエラーが出たので備忘録…

“`
Traceback (most recent call last):
File “/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/aiohttp/connector.py”, line 936, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File “/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/asyncio/base_events.py”, line 1042, in create_connection
transport, protocol = await self._create_connection_t