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

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

組合せ最適化への挑戦録(勤務スケジューリング)1.丸写しからのスタート

##前置き

シフト表作成が大変なので、組み合わせ最適化を使って定量的な評価を付けた上で書けないか?との相談があったので挑戦することに。
理論の時点でかなりつまずきを感じる・・・まあ、やってみるものとする。

ざっくり読んだページのメモ:

https://qiita.com/SaitoTsutomu/items/bfbf4c185ed7004b5721
https://qiita.com/SaitoTsutomu/items/a33aba1a95828eb6bd3f

今回の問題は勤務スケジューリング問題であり、上述のサイトを見た限りではpulpが使いやすそうだったので、まずはpulpを使った設計で考えてみる。

##環境
動くようになるまではgoogle colaboratory を使用。
最終的にはpython-embedで動かせるようにし、データはxlsxファイルから取り込む形にしたい。

## 主題

“` https://qiita.com/SaitoTsutomu/items

元記事を表示

make_blobsで作成したone-class SVM用のテストデータ分布

##make_blobsでone-class SVM用のテストデータを作ったら、分布が思いのほか歪んでいた
 one-class SVMのデバッグ用にtarinデータを作る必要があったが、60秒毎のデータで計算したいという事で、n_samples=60で作成していた。
 one-class SVM のパラメータ調整しても、思ったほど正答率が上がらず。 random_stateは固定していたが、n_samplesを小さくしたので、思ったよりも分布がゆがんでいた。
 random_state=0~100まで確認した上で、n_samples=60でも実際の分布に近そうなrandom_stateを選んで解決した。
試験そのものは、n_samplesが少ない状況では、ちょっと微妙だったが…
random_state=0~100のサンプルコード。

“`python
from sklearn import datasets
import matplotlib.pyplot as plt
k=0
plt.figure(figsize=(20,15))
for j in range(100):

元記事を表示

Prophetの使い方メモ

# Prophetとは
ProphetはFaceBookが開発した時系列予測のパッケージです。
下記のslide shareがとても分かりやすいので、最初に目を通すことをお勧めします。
本記事はProphetの公式ドキュメントを中心に、Prophetの使い方を自分なりにまとめたものとなります。

– [Prophet公式](https://facebook.github.io/prophet/docs/quick_start.html#python-api)
– [Prophet入門【Python編】Facebookの時系列予測ツール](https://www.slideshare.net/hoxo_m/prophet-facebook-76285278)

# 使用するライブラリのインストール
環境はGoogle Colaboratoryです。

“` python
!pip install fbprophet
“`

“`python
import pandas as pd
from fbprophet import Prophet
from fbprophet impo

元記事を表示

SDF EditorでShadertoyやGLSLのモデリングが劇的に簡単に!

###SDF EditorでShadertoyやGLSLのモデリングを劇的に簡単に!

**”SDF Editor”** https://joetech.itch.io/sdf-editor はプロトタイプのSDF(SignedDistanceFunction(符号付距離関数)モデリングツール
であるが、実装されている機能が少なく、まだ使いやすいとはいえないが、テキストエディタ―で
タイプするよりも視覚的にデザインできるのでこれを使わないときよりも何十倍も効率的にモデリングできる。**Shadertoy**や**GLSL Sandbbox**などのGLSL系シェーダーを書くときに役に立つが、”SDF Editor”は今のところjsonのファイルを出力するだけなので、GLSL形式にコンバートするためのコンバーターをPythonで応急で書いた。
ただし、今回はShadertoyでよくSDFモデリングに使われる**楕円体だけに限定している**。

↓SDF Editorでモデリングすると、

![スクリーンショット 2021-05-17 072753.jpg](https://qiita-i

元記事を表示

Python3でリスト配列をソートする方法

Pythonでリスト配列を並び替える方法です

“`python
num1 = int(input())
#リスト配列を定義する
data1 = []
for i in range(num1):
num2 = int(input())
data1.append(num2)

#非破壊配列で配列を並び替える
data = sorted(data1)

#データを1行ずつ出力する
for i in range(num1):
print(data[i])
“`

元記事を表示

GetElement example with findall and search in python3

## source

“`python
import re

def getElement(src, name, attribute=””):
e = “”
print(“==findall==”)
ret = re.findall(‘<'+name+"(>| [^>]+>)([^<]+)<", src, re.S) print(ret) if ret[0:1]: ret = ret[0:1] print(ret) for i in range(len(ret)): print(ret[i]) print(ret[i][1]) print("==search==") ret = re.search('<'+name+"(>| [^>]+>)([^<]+)<", src, re.S) if ret: print(ret.group(2)) else: print("could not se

元記事を表示

動画を撮り回すためのプログラム.py

#動画を撮り回したい/撮りまくりたい人のためのプログラム
こんにちは。わんこそばです。
…という事で(脈絡無視)、今回はタイトル通りのプログラムを書いてみました。

##モチベーション
私は所属大学のゼミで、歩容認証やそれを活かした個人認証、そしてスポーツシーンへの転用を考えた研究をしています。スポーツシーンのみならず、様々なシーンでの認証には動画データが必要で、これ(入力)が無いと私の研究は始まりません。

そういうわけで、今回は「PCで細かく動画データを取得(撮影)できるプログラム」を書こうと思いました。

##使うもの
①Python 3.7.6 … JupyterNotebookで実行しました。
②opencv 4.3.0 … ①上で使用しました。
③os … ①上で使用しました。opencvほどの特別感はありませんが重要です。
④カメラ … 一部のウェブカムなど、プログラムがうまく機能しててもダメな場合があります。そういった場合は、カメラが元から組み込んであるラップトップなどを使用してみると動作すると思います(経験者談)。

##プログラム
具体的にはこん

元記事を表示

python + gnuplot でマンデルブロ集合(その1)

Gnuplotでマンデルブロ集合をなんだか書きたくなったのでPythonを利用して書いてみた。まだまだアラが目立つのでブラッシュアップは必要。決定的なのはGnuplotのset pm3dを使っても等高線がグラデーションで表現されないという弱点あり。

“`python:mandelbrot_ver1.py
#!/usr/bin/env python
import numpy as np

def columns_save(data, filename=’tmp.dat’):
”’
PyGnuplotのs関数は等高線を表示させるには力不足なので、別途空白行を出力できるsave関数を作成してデータ出力する。
s関数のように data = [xs,ys] ではなく data= [[x1,y1],[x2,y2] …]というようなデータ構造に変更。
”’
file = open(filename, ‘w’)
columns = len(data)
rows = len(data[0])
for i in range(col

元記事を表示

【Python】Paizaのスキルチェックをローカルで実行する

## 何がしたいか
paizaの[スキルチェック](https://paiza.jp/challenges)はWeb上で完結しておりますが、ローカルのIDEやテキストエディタでコードを書きたい場合もあると思います。そこで、独自の`input()`を作ってファイルから入力できるようにします。

## フォルダ構成
フォルダ構成は以下を想定しております。`main.py`が実行するファイルで、`utils.py`に`input()`の実装を書きます。

“`bash
paiza/
in_1.txt
main.py
utils.py
“`

## 処理内容
実際の処理は以下の通りとなります。とりあえず固定値で`in_1.txt`を渡すようにしてますが、複数ファイルを扱いたい場合はこのあたりを修正していただければ良いと思います。

“`python:utils.py
import builtins
import linecache

line_num = 1

def input() -> str:
global line_num
target_l

元記事を表示

【Python】ホテリング理論(1次元)〜異常検知の古典的手法〜

こんにちは。
今回は異常検知の古典的手法であるホテリング理論を
Pythonで実践してみようと思います。

まず、ホテリング理論について解説します。
次に、解説した内容を踏まえてPythonによる
コーディングを行います。

また、今回の記事を書く上で
以下の書籍の第2章をかなり
参考にさせていただきました。
[入門 機械学習による異常検知―Rによる実践ガイド](https://www.amazon.co.jp/%E5%85%A5%E9%96%80-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AB%E3%82%88%E3%82%8B%E7%95%B0%E5%B8%B8%E6%A4%9C%E7%9F%A5%E2%80%95R%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E4%BA%95%E6%89%8B-%E5%89%9B/dp/4339024910)

# ホテリング理論とは
ホテリング理論は一言でいえば、
「観測データが独立に同一の正規分布に

元記事を表示

Pythonウェブページのデータを取得

# Pythonウェブページのデータを取得
Pythonにライブラリrequests、解析ライブラリBeautifulSoupを介して情報を取得します、ここではYahoo(https://www.yahoo.com/)を例にします、ホームページTrending Nowの内容を取得します。

1)まずはライブラリrequests、BeautifulSoupをインポート
2)requests.get(url)を使ってウェブページのすべてのコンテンツを取得
“`java
requests.get(url)
“`
3)取得したウェブページのコンテンツをBeautifulSoupタイプに変換
“`java
bs = BeautifulSoup(result, ‘html.parser’)
“`
4)解析Yahoo(https://www.yahoo.com/)のTrending Nowエリア、探し出す他の内容との違い、分析し発見するclass属性は唯一です。この属性を使って値を取得します。
find_all(class_=’XXX’)方法を使って値を取得します。
※classが

元記事を表示

tensorflowのCallBackでHistoryオブジェクトを加工する

最近ようやくCallBackに手を付ける気になりましたので
手始めにTensorflowのHistoryを改造する方法について調べました。

この記事では次の環境を使用しております。
Python 3.7.7
tensorflow 2.4.1

## 標準Historyの問題点

Tensorflowではfitの戻り値としてHistoryオブジェクトが返ってきます
出力される値は、Batch毎の出力を平均した値です

LossやAccならまだ使えると思いますが
F1Scoreでは全く用をなしません

以下の記事を参照しました。
https://qiita.com/koshian2/items/81abfc0a75ea99f726b9
## HistoryCallBack

標準が使えないならば自作してみましょう。
まずはDocument巡りです。

TensorflowのDocument
https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/History

生成されたHistoryの使い方については書いてありますが

元記事を表示

DjangoプロジェクトをHerokuにデプロイ

Djangoでプロジェクトをつくってデプロイで失敗し、何時間も時間を無駄にしてしまった方は多いと思います。私もその一人で、毎回、試行錯誤を繰り返していますが、うまくいったケースを参考までにメモとして残しておきます。なお、これでうまくいかないケースやセキュリティ上大丈夫かなどの問題も想定されるので、記事の内容の適用については、あくまで自己責任でお願いします。


1. settings.pyを本番環境用に修正する

settings.py(重要な箇所のみコードを抽出しています)はデフォルトというかローカル開発環境では、以下のようになっていると思います。ローカル開発環境で動作させるだけであれば、アプリを追加した場合にアプリ名をINSTALLED_APPSに追加する程度の修正のみだと思います。(今後ローカル環境と本番環境で使い分けるため、ローカル環境用のものは、settings_local.pyのようにファイル名を変えておくことをおすすめします。)

“`python:settings_local.py

from pathlib import Path

BA

元記事を表示

Pythonを利用してcsvファイルをDBにインポートする

# 始めに

Pythonを利用して、csvファイルをそのままpostgresqlにインポートするスクリプトを作成した。sqlaclchemyとpandasを利用することで、テーブルの作成の手間がなくなったり、DBの違いも吸収できるようになった。

# postgresqlの準備

実験用のpsotgresqlは、docker-composeを利用して立ち上げる。

“`yml:
version: ‘3’

services:
postgres:
image: postgres:10
container_name: postgresql
ports:
– “5432:5432”
environment:
POSTGRES_USER: postgresql_user
POSTGRES_PASSWORD: postgresql_password
volumes:
– ./db:/var/lib/postgresql/da

元記事を表示

[kaggle / python] kaggleで回帰問題の超々々初歩から取り組む(1)

# What is this? (これは何?)

kaggle の [House Price](https://www.kaggle.com/c/house-prices-advanced-regression-techniques)に取り組みます。

– 狙い
kaggleの初心者向け記事はたくさんありますが、あんまり初心者向けじゃない気がしています。(私のレベルが低すぎて…)
なので、より低レベルな内容に絞った記事(メモ)を作ろうとしました。

# What is the skill of writer?(書いた人の技術力はどんなもの?)

記事を書いた人の能力は以下の通り
状況が近い人は、何か参考になるものがあるかもしれません

– **学校**:文系大卒
– **お仕事**:WEBアプリケーションエンジニア歴満4年
その他のエンジニア経歴はなし
– **言語**:そもそも、Pythonを仕事ではあんまり使ってない
– **数学**:Ⅲ/Cを習ってない
年代が違う人のために説明すると、微分方程式や行列は習っていない、ということです(年齢がばれる

元記事を表示

Feature Hashing (Hashing)について要点をまとめてみた件について

# はじめに
カテゴリ変数を数値化する方法にはいろいろな種類があります。
一番有名な方法としては、`One-Hotエンコーディング`や`ラベルエンコーディング`などがあります。

勉強会を聞いているときに`Feature Hashing`(Hashing, Hashed Featureなど)という手法がありましたのでそちらについて、まとめていきたいと思います。

また、それ以外のカテゴリエンコーディングは[こちらの記事](https://www.takapy.work/entry/2019/12/10/085810#Hashing)を確認いただけると、とても分かりやすくまとめられております。

本記事でもこちらの記事を参考にFeature Hashingをやっていきたいと思います。

# Feature Hashingの手法について

手法については[こちら](https://www.renom.jp/ja/notebooks/tutorial/preprocessing/category_encoding/notebook.html)の記事に乗っていましたので、利用しました。

例え

元記事を表示

DeepLearningを用いた超解像手法/SRCNNの実装

# 概要
深層学習を用いた、**単一画像**における超解像手法である[SRCNN](https://arxiv.org/abs/1501.00092)の実装したので、それのまとめの記事です。
Python + Tensorflow(Keras)で実装を行いました。
今回は、**2倍拡大**の超解像にチャレンジしました。

以前、3つに分けて記事を上げていたのですが、コードが汚かった+1つにまとめたかったので再投稿しています。ご了承ください。

今回紹介するコードは[Github](https://github.com/morimoris/keras_SRCNN)にも載せています。

# 1. 超解像のおさらい
超解像について簡単に説明をします。

超解像とは解像度の低い画像に対して、解像度を向上させる技術のことです。
ここでいう解像度が低いとは、画素数が少なかったり、高周波成分(輪郭などの鮮鋭な部分を表す成分)がないような画像のことです。
以下の図で例を示します。(図は[[論文]](https://www.jstage.jst.go.jp/article/itej/62/3/62_3_

元記事を表示

Pythonではじめての簡易レコメンドエンジン開発

# はじめに
レコメンドエンジンの仕組みってよくわかりませんよね。仕組みを知ろうと思って説明を見てみても複雑な数式とか難しそうな言葉がたくさん出てきたり、そもそも日本語じゃなかったり…
僕もレコメンドエンジンについて何も知らない状態から色々と調べました。それでほんの少しだけレコメンドエンジンについてわかるようになったので、ここに記録を残しておこうと思いました。

# この記事の対象者

– レコメンドエンジンの名前くらいしかまだ知らない人
– レコメンドエンジンについて少し興味がある人

## レコメンドエンジンは「おすすめシステム」のこと
YoutubeやSpotifyのように、何かコンテンツを提供するサービスで例えます。
コンテンツをユーザーに提供する際に、どのコンテンツが気に入られるのかというのはもちろんユーザーによって異なります。
そのため、ただソートされただけのコンテンツやただ人気度の高いコンテンツを提供するだけでは、それぞれのユーザーにとって自分の欲しいコンテンツが表示される機会が少なくなってしまいます。

そこで最近の大手サービスには**レコメンドエンジン**が搭載

元記事を表示

CSVのデータをExcelに貼り付けて散布図を作成

複数のcsvファイルを選択した場合は、シート別(ファイル名)にデータの貼り付けとグラフ(散布図)の描画を行う。
本コードは17行目(LIST_TARGET)に示す3つの系列のデータがcsvファイルに存在することを前提としている。
データ系列数が3つ以上の場合でもグラフに凡例が表示されなくなるが、動作はするはず。

“`Python
#CSVのデータをExcelに貼り付けて散布図を作成

import tkinter as tk
import tkinter.filedialog as fl
import tkinter.messagebox as mb
import numpy as np
import openpyxl as px
from openpyxl.chart import ScatterChart,Reference,Series
import os

root = tk.Tk()

#ファイルダイアログを表示するディレクトリ
INI_DIR = “D:/Python/Hello”

#書き込み先のExcelの一行目に読み込み元ファイルがどんな物理量かを記載す

元記事を表示

SE1年目の初心者プログラマーが統計WEBの問題をPythonで解いてみる。

# はじめに

こんにちは。自分は現在SE1年目でJavaを業務で扱っています。

データ系の業務へのキャリアチェンジのために統計検定2級を取得しようと考えたのですが、
`統計検定2級の勉強`+`python`の勉強ができれば一石二鳥だと思い、[統計WEB](https://bellcurve.jp/statistics/course/)の練習問題をpythonを使って解くことにしました。

同じように`統計学`も`python`も初心者だという方の参考になれば幸いです。
また、書いてるコードがおかしかったり、もっと良い書き方や慣習等があれば経験者の方のご意見をお聞きしたいです。

# 目次

1. [具体的な学習方法](#Chapter1)
1. [練習問題の解答](#Chapter2)
1. [参考文献](#reference)



# 具体的な学習方法

統計WEB:統計学の時間(https://bellcurve.jp/sta

元記事を表示

OTHERカテゴリの最新記事