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

Python関連のことを調べてみた2020年08月24日
目次

4次元四目で遊ぼう

## はじめに

みなさんは,立体四目という遊びをご存知でしょうか。
[ググってみると](https://www.google.com/search?q=%E7%AB%8B%E4%BD%93%E5%9B%9B%E7%9B%AE)なんとなくお分かりいただけると思いますが,4×4×4の空間内で四目並べをするものです。
これを安易な気持ちで4次元に拡張してしまったので,そのことについて書いてみたいと思います。

## できたもの

こんな感じのものができました。

iOS上でPythonを動かす[Pythonista 3](https://itunes.apple.com/jp/app/pythonista-3/id1085978097?l=en&mt=8)を使用して,iPadで作成しました。

### できること

– 4次元

元記事を表示

【EDA】Sweetvizの紹介 (+pandas-profilingとの比較)

今までEDAは[pandas-profiling](https://github.com/pandas-profiling/pandas-profiling)を使っていたのですが、[Sweetviz](https://github.com/fbdesignpro/sweetviz)なるものをたまに見かけるので試してみました。

データは[Titanicデータ](https://www.kaggle.com/c/titanic/data)を使用しました。

#目次
1. [EDAとは](#1-edaとは)
2. [Sweetviz実行例](#2-sweetviz実行例)
3. [pandas-profiling実行例](#3-pandas-profiling実行例)
4. [実装例](#4-実装例)
1. [コードとデータのダウンロード](#4-1-コードとデータのダウンロード)
2. [環境準備](#4-2-環境準備)
3. [コード実行](#4-3-コード実行)
5. [最後に](#5-最後に)

#1. EDAとは
EDAとは**Explanatory Da

元記事を表示

ゼロから作るDeep Learning❷で素人がつまずいたことメモ:4章

# はじめに
ふと思い立って勉強を始めた[「ゼロから作るDeep Learning❷ーー自然言語処理編」](https://www.oreilly.co.jp/books/9784873118369/)の4章で私がつまずいたことのメモです。

実行環境はmacOS Catalina + Anaconda 2019.10、Pythonのバージョンは3.7.4です。詳細は[このメモの1章](https://qiita.com/segavvy/items/91be1d4fc66f7e322f25)をご参照ください。

# 4章 word2vecの高速化

この章は、3章で作ったword2vecのCBOWモデルの高速化です。

## 4.1 word2vecの改良①

まず入力層から中間層までの高速化です。この部分は単語を分散表現に変換する埋め込みの役割を担いますが、MatMulレイヤーだと無駄が多いのでEmbeddingレイヤーへ置き換えます。

Embeddingレイヤーはシンプルなのですが、逆伝播の実装でidxが重複している場合に $ dW $ を加算する部分が少し分かりにくいかも知れま

元記事を表示

KaggleとKerasで始めるディープラーニング画像分析

#はじめに

この記事では画僧分析の入門としてKaggleの開発環境(Kernel notebook)とKerasを用いたMNISTデータセットの分類を紹介します。
Kaggle上ではKernelを公開しているので、自分でも動かしたい場合などは併せてご覧になってください。

– https://www.kaggle.com/taiga518/keras-deep-learning

間違い、質問、コメントなどあればぜひお声がけください。
LGTM頂けると励みになります!

#Kaggleとは
Kaggleはオンラインで行う世界最大の分析コンペティションです。
また、分析にすぐに取り組めるKernel notebookというオンライン開発環境が用意されており、データ分析の入門には最適だと思います。
本記事ではKaggleに既に登録しており、Kernelの使い方がわかる方を対象にしています。
(ご存じない方も参考になる記事はたくさんあるのですぐにキャッチアップできると思います。)

より詳しくは以下を参照ください。
– [Kaggleを始める人に役に立つ記事](https://qiita.

元記事を表示

コロナで危険度の高い人を見つけたらすぐ治療しようとするアプリ作ってみた

# はじめに
この記事は [chillSAP 夏の自由研究2020](https://note.com/chillsap/n/n66e12ef65d11/) の記事として執筆しています。

猛暑が続いておりますが、皆さまいかがお過ごしでしょうか。
今年はコロナの影響で、日々言い知れぬ不安に苛まれることも多いのではないでしょうか。
この状況下で発熱してしまった方のご心境は察するに余りあります。
このような方の症状を一刻でも早く緩和させるため、今回は特に治療の緊急度の高いご高齢&高熱の方を判定してイ〇ジンをかけて治療を行うアプリを開発しました。
(注:本記事はコロナウイルスに対する治療法を提案するものでもなければ、イ〇ジンの効果を証明するものでも無いことをご承知おきください。また、ご気分を害された方がいらっしゃったら誠に申し訳ございません。)

# 概要
![コロナアーキ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531075/499b345c-0aa4-5046-15cb-842a95b2fea2.p

元記事を表示

macOS で pyenv install すると BUILD FAILED となり Python のインストールに失敗するときの解決法 (の一つ)

# 解決法
pyenv を使用して Python をインストールしたところ BUILD FAILED となりインストールに失敗しました。原因は binutils でした。binutils を一旦アンインストールしてから再実行したらうまくいきました。

“`shell
$ brew uninstall binutils
$ pyenv install
$ brew install binutils
“`

なぜ binutils がインストールされているとインストールに失敗するのかはよくわかりませんでした。

“[pyenv install build failed macos](https://www.google.com/search?q=pyenv+install+build+failed+macos)” などで調べてみるとたくさん記事が出てくるのですが、どれも解決法がバラバラでした。自分の場合は binutils をアンインストールするだけで解決したので、解決法の一つとして共有しておきます。参考になれば幸いです。

# 環境
| 環境 | バ

元記事を表示

Scapyのコードを少しみてみる。構造体をどう処理しているか。

#目的
少し用事があり、例えば、Scapyのコードはどんな感じが見てみた。
Scapyとは、
**Scapy is a powerful Python-based interactive packet manipulation program and library.**
(引用:https://pypi.org/project/scapy/)

**Pythonには構造体がない**ので、
パケットなどの構造体的なデータをどう処理しているかを確認した。

対象コードは、
https://github.com/secdev/scapy

引用コードもすべて上記。

#わかったこと
##概要
コード上、以下の2つの構造体関連の処理があった

* structモジュール
* Structureクラス

基本、前者が使われている。

#structモジュール

↓以下のような感じで、packしていた。

“`python
psdhdr = struct.pack(“!4s4sHH”,
inet_pton(socket.AF_IN

元記事を表示

Spyderのアップデート方法

Spyderを最新版にアップデートするために、Anacondaの全パッケージをアップデートしてみたのですが
Spyderは更新されていなかったため、
おかしいなと思いネットで調べてみました。
以下が今回アップデートに成功したやり方です!!

➀Anaconda promptを開く
➁”conda install spyder=4.1.4″ と入力してEnter  ※4.1.4 = インストールしたいバージョンを入れる
➂このメッセージが表示されたら”y”を入力してEnter
  ![spyder-update06.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/696659/9e2d0494-4f65-d68b-f43d-bb24c1a4dd8c.jpeg)
➃アップデートが開始されます

以上です!

元記事を表示

DeepMind製強化学習フレームワーク Acme

[以前の記事](https://qiita.com/ymd_h/items/97b9c1ff6809242db211)で少し触れたDeepMind製の強化学習向けフレームワーク [Acme](https://github.com/deepmind/acme) (a research framework for reinforcement learning) についての紹介記事

(いつものように、自ブログに投稿した[英語記事](https://ymd_h.gitlab.io/ymd_blog/posts/acme_by_deepmind/)の日本語焼き直し。)

# 1. はじめに

DeepMindの研究者が実際に毎日のように使っている強化学習向けフレームワークのコード(の一部)をOSSとして[公開](https://deepmind.com/research/publications/Acme)したもの。

Acmeはシンプルな学習ループAPIを提供しており、ざっくりとは以下のようなコードになる。

“`python:学習ループ
loop = acme.EnvironmentLo

元記事を表示

[AWS] Lambda関数のユニットテストをローカル環境で実行してみよう

# 前提
今回は、以下のような前提で検証してみたいと思います。

– SAM
– Lambda
– Python3.8
– pytest
– moto(モック)
– DynamoDB

なお、SAMを使用すると、Dockerん環境を使って擬似的にローカル環境にDynamoDBなどを構築することができますが、今回は、ユニットテスト(将来的な自動テスト)を見据えてのテストについて検証してみたいと思います。

# プロジェクト作成
では、まず最初にプロジェクトを作成します。
もし、SAMでのプロジェクト作成がよくわからない方は、事前に

– [[AWS] Serverless Application Model (SAM) の基本まとめ](https://qiita.com/herohit-tool/items/420f4a7b294cfcf56ed7)
– [[AWS] Serverless Application Model (SAM) でAPI Gateway + Lambda + DynamoDBなサンプルを作成してみる](https://qiita.com/herohit-tool

元記事を表示

GCPでJupyterLabを使ってBigQueryのデータを可視化してみた

注意

私はGCPもpythonもjupyterも初心者です。ぐぐりながら動かせてとても嬉しかったので投稿させていただきました。
間違いなどありましたら教えていただけるとありがたいです。

# 参考

– [[GCP] AI Platform Notebooksが正式リリースされていたので使ってみる
](https://dev.classmethod.jp/articles/mrmo-gcp-ai-platform-20200428/)
– [【BigQuery】CREATE文を使えるの知ってた?SQLでテーブル作成](https://www.isoroot.jp/blog/1651/)

# BigQueryのデータを作っておく

GCPのコンソールを開く

https://console.cloud.google.com/

サイドメニューの「BigQuery」を選択

![Screen Shot 2020-08-23 at 18.27.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14291

元記事を表示

[python]pdf からテキストを抽出して、Open-Jtalkで文字を読み上げる

PDFのテキストを抽出する
[PythonのpdfminerでPDFのテキストを抽出する方法を現役エンジニアが解説【初心者向け】](https://techacademy.jp/magazine/22374)

“`
$pip install pdfminer.six
“`

“`.py
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

input_path = ‘抽出したPDFのパス’
output_path = ‘result.txt’

manager = PDFResourceManager()

with open(output_path, “wb”) as output:
with open(input_path, ‘rb’) as

元記事を表示

send_keysが動作しないとき

#1 この記事は

スクレイピングライブラリーSeleniumにて、Webブラウザ上のテキストBOXに文字の入力を行うときに、サイトによっては所望の文字が入力できなかったり入力速度が遅くなったりします。その対応法です。

#2 解決法

アカウントログイン画面にてログインを行う場面です。アカウントを自動入力する場合
send_keysでは、下記のコードを使います。

![107.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150223/b0ba70ee-881a-9c36-4cda-93bf8c27df56.jpeg)

“`python:test.py
ID=”abcdefg”
elem_username = browser.find_element_by_name(‘loginid’)
elem_username.send_keys(ID)
“`

しかしながら、は所望の文字が入力できなかったり入力速度が遅くなる場合は、execute_scriptを使用すると解決します。

“`py

元記事を表示

Scapyのコードを少しみてみる。特殊メソッド__div__, __getitem__ とかのオーバロード。

#目的
少し用事があり、例えば、Scapyのコードはどんな感じが見てみた。
Scapyとは、
**Scapy is a powerful Python-based interactive packet manipulation program and library.**
(引用:https://pypi.org/project/scapy/)

Pythonの素人?(詳しくない意)の、ワタシには、かなり難しいコードでした。

まず、**特殊メソッドのオーバロードあたりで、コードが
理解できなくなった**ので、わかったことをこの記事のメモにする。

#わかったこと

引用コードは、すべて、
https://github.com/secdev/scapy
から。

## \_\_div\_\_ のオーバロード

使い方:

“`python
a = IP(dst=dest) / TCP(flags=”S”, seq=i, sport=65000, dport=55556)
b = IP(dst=dest)/ICMP()
“`

作用:
**オブジェクトを「/」で、く

元記事を表示

venvでjupyterを使うためのkernel追加と削除

jupyterでvenvの環境を認識させるにはkerelを追加する必要があります。
※ちなみにjupyterはvenvごとにインストールする必要はないです。

“`xxx:追加
(my_venv) C:\> pip install ipykernel
(my_venv) C:\> ipython kernel install –user –name=my_venv
“`
追加したらjupyternote bookの[Kernel]タブのChange kernelから選べばできる

“`xxx:削除
C:\> jupyter kernelspec uninstall my_venv
“`
使わなくなった時に削除しないと永遠に残ります。

元記事を表示

2. Pythonで綴る多変量解析 8-2. k近傍法 [ウェイトのかけ方] [回帰モデル]

* k近傍法は、予測に使用される重み関数(ウェイトのかけ方)が2通りあります。
– **uniform : 一様な重みで、近傍のすべての点が等しく重みづけされます。**
– **distance : 点を距離の逆数で重みづけします。従って、近い点の方が、遠い点よりも大きな影響力を持ちます。**
* デフォルトは uniform なので、distanceとするにはインスタンス生成時に引数で渡してやる必要があります。

**これらの違いが、どのように予測結果に影響してくるのでしょうか。**
[前回](https://qiita.com/y_itoh/items/004b75add495f1903331)の分類モデルのケースを例として示します。

![2_8_2_01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/502109/4ba8e49c-6ddc-3a1e-5540-81ec7e64256f.png)

* 境界が微妙に異なりますが、特に赤い○囲みの箇所に明らかな違いが見られます。

元記事を表示

犬ですが何か?Djangoアプリ作成開始の巻– startapp

#アプリケーションを作成する
暑くて散歩がつらい柴犬のぽん太です。今日は散歩中に川に飛び込んで水浴びをしたら飼い主に嫌がられました。

では、Djangoのアプリケーションを作りたいと思います。

“`
(venv_dog) Ponta@shiba_app # tree
.
├── db.sqlite3
├── manage.py
└── shiba_app
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-38.pyc
│   ├── settings.cpython-38.pyc
│   ├── urls.cpython-38.pyc
│   └── wsgi.cpython-38.pyc
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py

2 directories, 11 files
“`
今日はここから始めます。
あれ、なんかディレクトリ(\_\_pycache\_\_)とファ

元記事を表示

【Pythonコーディング規約】PEP 8 vs Google Style

# はじめに
Pythonのコーディング規約として有名なのは標準ライブラリのコード規約[PEP 8](https://www.python.org/dev/peps/pep-0008/)であるが、[Google Python Style Guide](https://google.github.io/styleguide/)というものがあるという。そこでGoogle StyleはPEP 8とどこが違うのかをまとめてみた。結論から言うとほとんどPEP 8と同じだったので、共通している規約(特に空行・空白関係)は割愛した。違いがあるのに網羅しきれてないところがあるかもしれないがご容赦頂きたい。

# 注
– 両者日本語訳が出ているが最新でない可能性があるので、極力英語版を参考にした
– PEP 8はpublic domain, Google Style Guideは[CC by 3.0](https://creativecommons.org/licenses/by/3.0/)

# 比較表
| 項目 | PEP8 | Google |
|:———–|:———-

元記事を表示

Pythonの環境構築をしないでプログラムを実行させる!!(Google Colaboratoryの始め方)

#始めに
僕は1年ぐらい前に人工知能についてよく分からないなら説明を聞くより作った方が早いだろと考え[Udemy](https://www.udemy.com/ja/)でPythonを使った人工知能の作り方についての動画を購入しましたが、**numpy**が上手くインストール出来なくて挫折してしまいました(笑)。でも今回の環境ではnumpyを使う事が出来ました!同じ悩みで困っていたらぜひ参考にして下さい。そうでなくても、pythonは何をして環境構築をしたら良いのか分からないと言う人や、タブレットでプログラミングをした人に、この記事を読んでくれると嬉しいです。

#google driveを使って
今の時代で知らない人は居ないと思いますが、googleではアカウントを作ると無料で15Gの容量をクラウド上に保存できる様になります。今回はそのgoogle driveの拡張機能?を使ってpythonで実行させて見ましょう。※今回はgoogleアカウントの作り方の作り方については解説しません、ゴメンなさい。YouTubeで分かりやすい解説動画がありましたので[こちら](https://www.

元記事を表示

Pythonでスクレイピング

[BeautifulSoupの準備](https://qiita.com/h1r0_1126/items/0989a2daf169c19adada)はこちら

最近モチベーション上がらなくて、上げるためにとりあえず書くことにしました。
本当に基礎の基礎なので悪しからず

とりあえず、BeautifulSoupを実行してみます。

“`
from urllib.request import urlopen
from bs4 import BeautifulSoup

# 取得するページ
html = urlopen(‘http://www.pythonscraping.com/pages/page1.html’)
bs = BeautifulSoup(html.read(), ‘html.parser’)
# h1タグを返す
print(bs.h1)
“`

2行目の
“`
from bs4 import BeautifulSoup
“`
部分でBeautifulSoupをインポートする。
実行結果は下記となる。
![WS000000.JPG](https://qiita-ima

元記事を表示

OTHERカテゴリの最新記事