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

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

Django form_invalidでcontextを追加したい

バリデーションが通らない時に特定の値をテンプレート側に渡したいということがありました。
日本語の情報がなかったので記事にしました

“`py:views.py
class HogeFormView(FormView):
….
def form_invalid(self, form):
context = self.get_context_data()
context[‘hoge’] = “hoge”
return self.render_to_response(context)

“`

参考にしたサイト
[Updating context data in FormView form_valid method?](https://stackoverflow.com/questions/6907388/updating-context-data-in-formview-form-valid-method)

元記事を表示

似たようなイベントを教師なし学習で分類

前回、単純なヒューリスティクスで重要イベントがなんであるか抽出したのですが、今回は特定の期間内に類似するイベントが起こっていたとして、それらを分類する2つのアルゴリズムを比較します。今回もツイートそのものは著作権等の理由から見せることができないので、方法だけ書きます。

# tldr
spectral clusteringとmarkov clusteringの比較。

# jupyterで実行

ソーシャルグループの投稿をcsvにしてあるのでそれをロードします。

In [1]:

“`python3
import pandas as pd
import numpy as np
import MeCab
import markov_clustering as mc
from collections import defaultdict
from tqdm import tqdm_notebook
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.cluster import Spectra

元記事を表示

AutoML(Auto-Sklearn)を使ってみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回はAutoML ライブラリー(Auto-Sklearn)を使ってみました。

##はじめに
過去に他のAutoML ライブラリーやツールについては、別の記事に纏めておりますので下記をご参照ください。

– [PyCaret](https://qiita.com/DS27/items/bc56163b2cc48403deb0)
– [TPOT](https://qiita.com/DS27/items/0311b56972da4bef94d5)
– [VARISTA](https://qiita.com/DS27/items/32349b03e99b3f580569)
– [AutoGluon](https://qiita.com/DS27/items/032e89fe421c74b5027b)

##Auto-Sklearn を使ってみた

必要なライブラリーは下記です。

“`
pip install auto-sklearn
“`

ライブラリーの依存関係で上手くいかない場合もありますので、バージョンを指定してイ

元記事を表示

M1 MacでObject Detection APIの環境構築

会社のパソコンでM1チップ搭載のMacを使用しており、そこでObject Detection APIを動かそうとしたらx86_64とArm64の違いにより色々苦労したので、備忘録も兼ねてまとめさせていただきます。間違い等あればご指摘いただけますと幸いです。

# 結論

M1 Macで、Object Detection APIを動かそうと思ったら、現状`Anaconda`一択。(miniforgeではなく)

– x86_64アーキテクチャ上(Rosetta2)で動かすAnacondaを使って、Tensorflowをはじめとするライブラリを、condaを使って入れる。
– または、Dockerの上にAnacondaを構築し、その上にcondaでライブラリを導入。

Tensorflowは、Arm64向けのものも出ていますが、apache-beamがArm64上ではどうしても入れられなかったためx86_64上に構築するしかなかったです。(apache-beamが依存関係にある、バージョン3.0.0以下のpyarrowに、arm対応のものが存在しないため?)
Tensorflowは、x8

元記事を表示

Remote ContainerでPython Seleniumする

##モチベーション
社内でSelenium研修担当しているのですが、受講者に環境作ってもらうのが面倒なので、簡単にできないかと思い、Remote Container使うとできそうなので、やってみた。

##環境(以下のものがInstallされている前提です)
Win10
VSCode
Docker for Windows

##Dockefile
まず、最終的に作成したDockerfileから

“` Dockefile
FROM python:3.7.3-slim

RUN apt-get update \
&& apt-get install -y –no-install-recommends \
apt-utils \
gcc \
build-essential \
&& apt-get install -y wget \
&& apt-get install -y unzip \
&& wget https://dl.google.com/linux/direct/google-chrome-stable_curren

元記事を表示

犬猫識別アプリ開発してみました

#はじめに
私は高校卒業後工場勤務を5年ほどしていました。ある時友人に誘われて無料のプログラミング学習サービスを利用することになりました。それから自分が作成したプログラムがネット上に表示される事に楽しさを感じ理解を深めるためにAidemyを受講する事になりました。

#本記事の概要
犬猫識別アプリの開発
アプリをご覧いただきたい方は[こちら](https://sikibetu.herokuapp.com)から。

・この記事は犬と猫の識別をするアプリのモデルの過程をメインに記事にしました。どのような流れでモデルが作られ、どの様な工程を踏んで一つのアプリが完成するのかがこの記事をご覧いただいたら理解出来ると思います。
・この記事は何か始めたいけどキッカケが掴めない方、IT関係に興味があるけど難しそうだからなかなか一歩を踏み出せない方が、プログラムを触るキッカケになればと思いこの記事を書かせてもらってます。
・この記事ではpythonでの開発になりますのでpython関連以外の言語等は扱いませんのでご了承ください。

#まず初めに
初めに、Python・Deep Learningの実行環境

元記事を表示

Pythonによるディレクトリ・ファイル操作まとめ

## ディレクトリ構成を出力
treeコマンドを用いるとディレクトリ構成を以下のように出力できます。
.
├── dir2
│   ├── dir3
│   ├── file1
│   └── file2
├── dir4
├── file1
├── file2
├── file3
└── file4

treeコマンドは以下のようにインストールできます。

“`zsh
brew install tree
“`

試しにpythonで適当なディレクトリやファイルを作成します。`os.makedirs`の引数に`exist_ok=True`を入れると、既にディレクトリが存在する場合はスキップされてエラーが出ないので便利です。

“`python
import os

# ディレクトリを作成
os.makedirs(‘dir1/dir2/dir3’, exist_ok=True)
os.makedirs(‘dir1/dir4’, exist_ok=True)

# 空のファイルを作成
for i in range(1, 5):
with open(f’dir1/file{i

元記事を表示

自然言語処理のチュートリアル 〜BoWからWord2Vecの理論から自前実装まで〜

#概要
自然言語処理について勉強を始めたい人へ、簡単な理論から実験コードまで載せています。
実行環境はJupyter notebookやGoogle Colaboratoryなんかを想定しています。
キーワード:分散表現, BoW, Word2Vec, CBoW, skip-gram

#目次
– [分散表現](#分散表現)
– [Bag of Words](#bagofwords)
– [次元削減](#次元削減)
– [Bag of Wordsの参考](#bagofwordsの参考)
– [Word2Vec](#word2vec)
– [CBoW](#cbow)
– [skip-gram](#skipgram)
– [分散表現の図示](#分散表現の図示)
– [Word2Vecの参考](#word2vecの参考)

#分散表現
コンピュータに人間の言語(自然言語)を扱わせる上で必須となるのが**分散表現**です。
もちろんですがコンピュータは数値しか取り扱うことができないため、自然言語を何らかの形で数値に変換する必要があります。また

元記事を表示

【Selenium】PythonでSeleniumを使う際に役に立つ(かも)Tips

# 概要
この記事ではPythonでSeleniumを使う際に役に立つ(かもしれない)Tipsを紹介していきます。

# webdriver-managerで最新のwebdriverを自動取得
Seleniumを運用する際に必要となるwebdriver、定期的に更新する必要があったりと面倒です。

そんな時に`webdriver-manager`を使用することで自動で対応したバージョンのwebdriverを取得してくれます!
使い方も非常にシンプルでdriverを定義する際に指定するだけ。

“`python
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# chromedriverのパスを指定する代わりにwebdriver_managerを呼び出す
driver = webdriver.Chrome(ChromeDriverManager().install())
“`

また、Firefoxの場合は、

“`python
from seleniu

元記事を表示

Pythone リスト内包表記

python内包表記

“`python
a = []
for x in range(1, 5):
a.append(x ** 2)
print(a)
“`

“`python
a = [x ** 2 for x in range(1,5)]
print(a)
“`

と書くことができる

元記事を表示

20代ならIT未経験者がエンジニア転職するのは別に難しくないよという話

– **年収アップの為にエンジニアに転職したいけど、IT未経験だから相手にされるか不安**

– **専門スキルが高められるIT職を目指したいけど、最初に何をすればいいのかわからない**

こういった不安を持つ方に向けて記事を書いていきます。

これを書いている僕は、初めてコードを書いてお金を貰ったのが2018年の夏です。
当時は全くのIT未経験で、**エンジニアの皆さんが頻繁に開いている黒い画面に恐怖心を覚えているレベル**でした(ターミナルのことです笑)。
気づけばそれから3年経ちましたが、今もプログラミングで金を稼いで生きているのは感慨深いものがあります。

そんな僕が断言しますが、**未経験からエンジニアに転職することは普通に可能**です。
(特に20代などの若者であれば、後述する理由により、さほど苦労はしないと思います。)

今回の記事で書いたのは、

– **完全未経験からエンジニアになるのは難しくない**
– **超初心者がエンジニア職に就く為に具体的にすべきこと**

の2点です。

## 未経験からのエンジニア転職

元記事を表示

Python Psd-Tools

今回は趣味で製作しているNscripterを使ったゲーム制作をする際に立ち絵が必要だったので
立ち絵を用意するためにいろいろ調べたので備忘録として残しておきます

使用するファイルは事前にPhotshopで開き名前を付けて保存
この際に互換性を優先するのチェックを外した状態で上書きします
こうしないとナゼカうまくいきませんでした(調査中)

ファイルの準備ができたら早速

“`
”’モジュールをインストール”’
pip install psd-tools
“`

環境の使用準備がこちら

“`python:psdexporter.py
#’’’必要モジュールをインポート’’’
#’’’画像出力するファイルをオープン’’’
from psd_tools import PSDImage

file_path = ‘任意のファイル.psd’
psd = PSDImage.open(file_path)
“`
以上で画像出力の準備が完了しました。

今回のモジュールは少々癖がありほどほどに苦戦させられました。

ひとまずテストで画像を出力します。

“`python:psde

元記事を表示

[kaggle / python] 回帰問題(house prices)の超初歩(4)~数値変数のカテゴリ変数化~

前回の続きです。
前回の記事はこちら。

https://qiita.com/siruku6/items/7b693568e6b2535e0c2a

# Summary of the previous article(前回のあらまし)

前回は、kaggle の House Prices の課題に対して、簡単にできる「新しい特徴量の作成と、不要と思われる特徴量の削除」を行いました。

結果としてScoreが、`0.15160`から`0.15140`へと微改善しました。
(微改善ってなんだ)

# Today’s result

そして今回は、**数値で表現されている特徴量(カラム)に対する操作**を行います。
具体的には、一部の数値データ特徴量を、カテゴリ変数(文字列)化します。

| |やったこと |score |
|———–|————————–|——-|
|前回 |- |0.15140|
|今回 |一部

元記事を表示

【Python】LambdaからのAPI呼び出しを並行処理・並列処理で実装して処理時間を比較してみた

## はじめに
Pythonで記述したLambda関数からAWSのAPIを呼び出す処理で、いまいち処理性能が出ないという課題があったので、並行処理・並列処理を実装して処理の効率が上がるのか検証してみました。

並行・並列処理とは?とうい方は以下の記事に分かりやすく説明されているので参考になさってください。

https://qiita.com/4_mio_11/items/7f418ca661d9f5a2a39d

## 前提
### 検証の内容
UUIDのリストを1000件分作成し、一件ずつSQSに登録します。
SQSに登録する処理を以下の三つの方法で実装し、それぞれの処理にかかる時間を比較します。

* forループ
* 並行処理
* 並列処理

「とりあえず動いて結果が比較出来るもの」を最短で作っていますのでコードの汚さには目をつぶっていただけると幸いです。

### 用意するもの

* Lambda関数
* リソース名:test-lambda
* ランタイム:Python 3.7
* メモリ:512MB
* タイムアウト:3分
* CPU

元記事を表示

箱ひげ図(boxplot)で外れ値を除いて描画する方法

pythonで群間の分布を比較する際に箱ひげ図を利用した時の事。
データをそのままカテゴリ毎に箱ひげ図を描画すると・・・

“`python
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

df = load_data() # データの読込

sns.boxplot(df[“sim_free_flg”], df[“price”])
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658983/6a205ec8-f826-f66d-b2cb-bb2a7e556ecb.png)

外れ値があまりにも大きくて、大事なところが潰れてしまい、比較がしにくい・・・
そんなときに外れ値を除去して表示する方法がないか調べたところ
matplotlibのドキュメントでこんなパラメータを見つけました

![image.png](https://qiita-image-store.s3.ap-nort

元記事を表示

比較的小規模で可搬的なPython toolのスケルトン

# Python scriptの可搬性

ちょっとした作業のためにPythonでひとまとりのスクリプトを書くことが多々ある。Pythonを利用する利点は、既存のライブラリ/モジュールが豊富で、OSのパッケージシステム(rpm,yum,apt,..)やそれに準じたもの(Macports, Homebrew)で配布されていたり、PyPI(`pip`コマンド一つ)によって容易に導入して利用できる点にある。

ただし、いろいろな計算機で可搬的に利用しようとすると、環境依存を気にしなくてはいけなくなる。モジュールがOSの配布物より導入済みの場合とそうでない場合、システム管理者としてpipを使える環境とそうでない場合、一般ユーザーとしてPyPIの設定をカスタマイズしている場合とそうでない場合、virtualenvを使っている場合とそうでない場合、などなど。ちょっとしたツールをパッと使いたいのに、各環境でPythonのセットアップがどうなっていたかを気にしないといけないのは非常に煩わしい。

それを回避するための処方箋をテンプレート化した。

# 方針

– 利用する環境ですでに導入済みかどうかは

元記事を表示

Python:Numbaを使って処理を高速化する

#はじめに
大量のデータを扱う場合や複雑な処理をする場合でも、アルゴリズムを工夫することで高速化が吐かれ流ことがありますが、アルゴリズムに関する知識が必要です。

PythonのパッケージであるNumbaを使うことで簡単に高速化することができます。

今回私が実験した環境は、

MacBook 12inch (2017)

CPUは、1.2 GHz デュアルコアIntel Core m3 で結構へぼい。。。

#Numbaのインストール
以下のコマンドでインストールできます。

“`zsh
pip install numba
“`

#ループ処理による高速化処理の実験
大量の数値データの平均を計算させるプログラムを考えます。

– 単純にループで足し算してデータ量で割る。
– Numpyパッケージのmean関数を利用する
– Numbaで単純ループ処理の関数をコンパイルする

では見ていきます。

##単純ループ処理

“`python:sample01
import numpy as np

n = 10_000_000 #1千万回

def average_loop(n):

元記事を表示

EDA-確率質量関数(PMF: Probability Mass Function)

## 確率質量関数(PMF: Probability Mass Function)とは

離散型確率変数:離散型変数Xの取りうる値(x1,x2,…xn)のそれぞれに対応する確率pが存在する場合、Pを離散型確率変数といいます。

|X|x1|x2|…|xn|
|—|—|—|—|—|
|P(X)|p1|p2|…|pn|

確率質量関数は、離散型確率変数にその値をとる確率を対応させる関数です。
離散型確率変数Xがある値xをとる確率を関数f(x)とした場合、f(x)が確率質量関数です。

“`math
f(x) = P(X=x)
“`

全事象が起こる確率は1です。

“`math
\sum_{i=1}^{n}P(X=x_i) = P(X=x_1) + P(X=x_2) + … + P(X=x_n) = 1
“`

## PMFプロット

“`python
import seaborn as sns

probabilities = df[‘col’].value_counts(normalize=True)
sns.barplot(pr

元記事を表示

犬猫識別アプリの開発

#はじめに
私は高校卒業後工場勤務を5年ほどしていました。ある時友人に誘われて無料のプログラミング学習サービスを利用することになりました。それから自分が作成したプログラムがネット上に表示される事に楽しさを感じ理解を深めるためにAidemyを受講する事になりました。

#本記事の概要
犬猫識別アプリの開発
アプリをご覧いただきたい方は[こちら](https://sikibetu.herokuapp.com)から。

・この記事は犬と猫の識別をするアプリのモデルの過程を記事にしました。どのような流れでモデルが作られ、どの様な工程を踏んで一つのアプリが完成するのかがこの記事をご覧いただいたら理解出来ると思います。
・この記事は何か始めたいけどキッカケが掴めない方、IT関係に興味があるけど難しそうだからなかなか一歩を踏み出せない方が、プログラムを触るキッカケになればと思いこの記事を書かせてもらってます。
・この記事ではpythonでの開発になりますのでpython関連以外の言語等は扱いませんのでご了承ください。

#まず初めに
初めに、Python・Deep Learningの実行環境に、Go

元記事を表示

Lambda (Python) で EBS ボリュームのスナップショットを削除してみる

# ■ はじめに

![963f9ca9395c096c234f891ad8877b28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/161939/d838a89d-5dc1-d693-0517-add60ca2ce07.png)

ずいぶん昔に作成したものですが…

以下の処理に伴って、イメージを削除したものの、元の EC2 インスタンスの設定によっては、スナップショットが残ってしまうことがあるのでこちらで対応します。

– [Lambda \(Python\) で EC2 のイメージ \(AMI\) を作成してみる \- Qiita](https://qiita.com/kusokamayarou/items/83ed22802580ca09276f)

# ■ プログラムの流れ

1. EC2 インスタンスのイメージの一覧情報を取得
1. EBS ボリュームのスナップショットの一覧情報を取得
1. 上記二つの一覧情報から、削除されたイメージにも関わらず、残っているスナップショットを抽出
1. 抽

元記事を表示

OTHERカテゴリの最新記事