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

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

【#1】PythonでMinecraftを作る。【下調べと設計】

Part of pictures, articles, images on this page are copyrighted by Mojang AB.

![minecraft.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535270/4c03684c-1ee7-4b2f-01b7-92836d12a930.png)

#概要
世界的に超有名なサンドボックスゲーム「Minecraft」をプログラミング言語「Python」で再現するプロジェクトです。

##きっかけ
僕がプログラミングに初めて触れたのは、「Minecraft」がきっかけでした。

4年以上前の事です。
Minecraftにおける「MOD」と呼ばれる所謂改造コンテンツに興味があり、「自分でも作ってみたい!」とプログラミングの世界に足を踏み入れました。
総プレイ時間は数万時間を超えており、色々と思い出深いゲームの一つです。

小学校低学年の頃からウェブサイトを制作したりと、多少はクリエ

元記事を表示

Pythonで、デザインパターン「Facade」を学ぶ

GoFのデザインパターンを学習する素材として、書籍「[増補改訂版Java言語で学ぶデザインパターン入門](https://www.hyuki.com/dp/)」が参考になるみたいですね。

ただ、取り上げられている実例は、JAVAベースのため、自分の理解を深めるためにも、Pythonで同等のプラクティスに挑んでみました。

# ■ Facade(ファサード・パターン)
Facadeパターンあるいは Façadeパターン(ファサード・パターン)とは、GoF(Gang of Four; 4人のギャングたち)によって定義された、コンピュータソフトウェアのデザインパターンの1つである。Facade(ファサード)とは「建物の正面」を意味する。異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める

元記事を表示

pyenvでcondaを入れてActivateできない問題の解決法

#はじめに(結論)
結論から言うとpyenvよりまえにcondaを読み込むように環境パスを設定すればいい。

“`:rcファイルに追記
export PATH=”$PYENV_ROOT/versions/anaconda3-バージョン/bin:$PATH”
“`

# あらすじ
pyenvでcondaをいれて

“`
pyenv install condaバージョン
“`

pyenvでcondaをグローバルにするために

“`
pyenv global condaバージョン
“`

condaで環境つくり

“`
conda -n 環境名
“`

つくった仮想環境をアクティベートしようとする

“`:現在のアクティブな環境を確認
conda env list
“`
“`
# conda environments:
#
base * /home/username/.pyenv/versions/anaconda3-2019.10
create_new_env /home/username/.pye

元記事を表示

言語処理100本ノック-94(Gensim使用):WordSimilarity-353での類似度計算

[言語処理100本ノック 2015](http://www.cl.ecei.tohoku.ac.jp/nlp100/)の94本目「WordSimilarity-353での類似度計算」の記録です。
ファイル上の単語間の類似度を計算します。技術的には今までやったことに対して、コーディングを少し変えるだけといった感じです。

# 参考リンク

|リンク|備考|
|:–|:–|
|[094.WordSimilarity-353での類似度計算_1.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/10.%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%E7%A9%BA%E9%96%93%E6%B3%95%20(II)/094.WordSimilarity-353%E3%81%A7%E3%81%AE%E9%A1%9E%E4%BC%BC%E5%BA%A6%E8%A8%88%E7%AE%97_1.ipynb)|回答プログラムのGitHubリンク|
|[094.WordSimilarity-353での類似度計

元記事を表示

Djangoのチュートリアルやってみた。Part1

チュートリアルで作成するもの。
簡単な投票アプリケーション。

>* ユーザが投票したり結果を表示したりできる公開用サイト
>* 投票項目の追加、変更、削除を行うための管理 (admin) サイト

#1 プロジェクトの作成

まずプロジェクトフォルダを作成したいところに移動します。
その後に下記のコマンドを打ちます。
そうすると現在のフォルダ内にmysiteというフォルダが作成されます。

“`
$ django-admin startproject mysite
“`

フォルダにはプロジェクトに必要なコードの雛形が作成されています。

#2 開発用サーバの起動

“`
$ python manage.py runserver
“`
これでサーバが起動したので下記のURLに飛ぶとDjangoのサンプルページが表示されているのが見れます。
http://127.0.0.1:8000/
ctrl + cで止められます。

#3 アプリケーションの作成

“`
$ python manage.py startapp polls
“`

上記コマンドでアプリケーションの雛形が

元記事を表示

大場花菜と大谷映美里の分類をディープラーニングでやってみた(その2)

#前回の続き
会社の研修で画像認識で分類問題を解いたので自分の好きなアイドルで同じことをしてみようとしたのがきっかけ。
以下、前回の記事

[大場花菜と大谷映美里の分類をディープラーニングでやってみた](https://qiita.com/obr_bt/items/c7e65127be2f04360948 “大場花菜と大谷映美里の分類をディープラーニングでやってみた”)

今回は前回の結果を踏まえ、精度向上と間違えてた画像がどのようなものだったのかを見ていこうと思います。

その前に分類対象となるお二方のご紹介

###大場花菜

私、おぼろの心の推しメン。アイドルグループ「=LOVE」のメンバーです。
**どがわええええええええええべほべほべろほろへゆろ、!!!!!ーー!!!**

EMUEVIBUcAAgFdI.jfif【スターターキット】Scrapy&MariaDB&Django&Dockerでデータ自動収集ボットシステムを構築する

![screencapture-192-168-99-102-admin-nutrition-item-2019-03-04-15_04_19-1024×686.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/514619/8e65d631-de2a-b0f4-18a4-b427fb78e439.png)

# 背景

世の中にあるWebサービスのデータベースを自動で同期して、本家にはない付加価値をつけることによって、手軽にニーズのあるWebサービスを作ることができます。

例えばECサイトのデータをスクレイピングして自前でデータベースとして持っておき、それに対して本家にはない検索方法を提供して、リンクを貼り、アフィリエイトで稼ぐみたいな軽量なビジネスモデルが個人事業のレベルで可能です。

このようなパターンはいくらでも考えられるのですが、とにかくまずはスクレイピングスクリプトを書いて、自動でデータ収集して、きちんと構造化して、それをなるべく最新の状態に保てるようなボットとインフラが必要になるわけです。

元記事を表示

pip3ベースでデータサイエンス環境を作るためのDockerfile

# やること
データサイエンス用のDockerコンテナといえばjupyter公式が配布している[scipy-notebook](https://hub.docker.com/r/jupyter/scipy-notebook)がありますが、Dockerfileを見るとcondaベースで書かれています。
しかし、宗教上の理由でcondaを使いたくありません。
そこで、今回はpip3ベースでデータサイエンス用の環境を作るためのDockerfileを書きます。

参考にした記事
[Dockerを使って機械学習の環境を作ろうとした話](https://qiita.com/penpenta/items/3b7a0f1e27bbab56a95f)

# 方針
・ python公式のDocker imageをベースにする
・ pip3を使う
・ 必要なモジュールのみを`requirements.txt`から読み込む
・ `google-cloud-bigquery`でBigQueryと繋ぎたいのでCloudSDKを入れる
・ jupyterlab+plotlyで可視化をしたいのでNode.jsを入れる

元記事を表示

【Python】周辺化ギブスサンプリングを実装してみた

本記事は、私の記事[【Python】混合ガウスモデルを使ったクラスタリングの実装](https://qiita.com/isuya/items/018a0867bdc95033736d)の続編になります。
[機械学習プロフェッショナルシリーズ『ノンパラメトリックベイズ 点過程と統計的機械学習の数理』](https://www.kspub.co.jp/book/detail/1529151.html)を読んで、本に書いてあるモデルをPythonで実装してみました。今回は、前回実装したモデルを改良し、**周辺化ギブスサンプリング**でクラスタリングを行います。

環境

Python: 3.7.5
numpy: 1.18.1
pandas: 0.25.3
matplotlib: 3.1.2
seaborn: 0.9.0

##本記事で使われている記号
本記事で使用されている数学的記号のうち、他ではあまり見られないものを説明しておきます。

– $x_{1:N}$ : $x_1, \cdots, x_N$の略
– $

元記事を表示

2020年 ITカンファレンスまとめ

#2020年に開催されるITカンファレンス
1月20日時点のまとめです。
随時、更新していくので更新されていたら、コメントで教えてください。

#言語
##PyCon JP
Pythonに関するカンファレンス
日程: 8月28日、29日の予定
場所: 大田区産業プラザPiO
[公式サイト](https://www.pycon.jp/)

##PHPカンファレンス
PHPに関するカンファレンス
日程: 10月11日
場所: 大田区産業プラザPiO
[2019公式サイト](https://phpcon.php.gr.jp/2019/)
[2020公式サイト](https://phpcon.php.gr.jp/2020/)

##PHPkaigi
PHPに関するカンファレンス
日程: 2月9日 16:30〜
2月10日 10:00〜
2月11日 10:00〜
場所: 練馬区立区民・産業プラザ Coconeriホール
[2020公式サイト](https://phperkaigi.jp/2020/)

##JSConf
JavaScriptに関するカンファレンス
開催不明
去年
日程:1

元記事を表示

numpyを使って数独を爆速で解いてみる

#数独とは

>数独(すうどく)は、3×3のブロックに区切られた 9×9の正方形の枠内に1〜9までの数字を入れるペンシルパズルの一つである。「ナンバープレース(ナンプレ)」とも呼ばれる。([Wikipedia](https://ja.wikipedia.org/wiki/%E6%95%B0%E7%8B%AC)より)

らしいです。

もちろん、何も考えずに数字を埋めるわけではなく、以下のような制約が付きます。

– 1つの列に同じ数字が存在してはいけない
– 1つの行に同じ数字が存在してはいけない
– 1つのブロックに同じ数字が存在してはいけない

![数独の解答.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/516969/75219d2b-30a0-d6c3-5582-f18375c18409.jpeg)
([数学の面白いこと・役に立つことをまとめたサイト](https://analytics-notty.tech/sudoku-rules/)様より拝借させていただきました)

これをプログラミング初

元記事を表示

スマートロック「SESAME mini」とRaspberry Pi Zero WHを使ってWeWorkのオフィスの鍵をICカードで解錠/施錠できるようにした

弊社は[WeWork](https://www.wework.com/ja-JP)のプライベートオフィスに入居しています。ビル内のラウンジエリアなどの共用スペースはWeWorkメンバー用のICカードで解錠できるのですが、オフィスの部屋の鍵は物理キーになっているのがほんのり不満でした。部屋もICカードで開けられたら便利ですのに。

何か方法がないかWeWorkのサポートに問い合わせたところ、市販のスマートロックを利用している会社があるという話だったので、弊社もそれに倣うことにしました。

# セサミminiを導入

工事不要でドアに取り付け、スマホのアプリで鍵の開け締めができる、いわゆるスマートロックはさまざまなメーカーから発売されています。

ただ、WeWorkのプライベートオフィスの鍵はちょっと特殊な形状をしている(取付可能なエリアの幅が狭い、サムターンのつまみが薄い)ため、どんなスマートロックでも取り付けられるわけではありませんでした。いろいろと調べた結果、[セサミmini](https://jp.candyhouse.co/)なら大丈夫そうだと判断し、オンラインショップから購入し

元記事を表示

68日目 【Kaggle入門】ランダムフォレストは単純なやつでした。

前回、性別だけモデルでランダムフォレストで予想したところ、男性全員死亡、女性全員生存というずいぶんな結果になりました。
[67日目 【Kaggle入門】ランダムフォレストを使ってみたが?](https://qiita.com/robamimim/items/302216707e24c944dbd2)

#ランダムフォレストとはいったい何者なのか。
いろいろ実験してみました。

##性別&クラスモデルの作成
前回作成した性別だけモデルに`Pclass`を加えます。

“`21.py
(前略)
#Dataframeを作る
#性別、等級
train_df = train_df.loc[:,[‘PassengerId’,’Survived’,’Sex’,’Pclass’]]
test_df = test_df.loc[:,[‘PassengerId’,’Sex’,’Pclass’]]
(以下同文)
“`

その結果`Public Score:0.75598`・・・下がりました。[タイタニック \(客船\)のWikipedia](https://ja.wikipedia.org/wiki/

元記事を表示

[Python3 入門 13日目]7章 文字列(7.1〜7.1.1.1)

#7.1 文字列
##7.1.1 Unicode

– コンピュータの記憶の基本単位は**バイト**で、8個のビットを使って256種類の一意な値を表現できる。
– ビット:2進数(0と1、バイナリ)で表した数字の桁数。4ビットは4桁、8ビットは8桁の2進数であり、それぞれ2の4乗(16)、2の8乗(256)通りの数字を表せる。
– バイト:8ビットで1バイト。1バイトを表すのに16進数を使うと分かりやすい。

– Unicodeは世界の言語の全ての文学と数学、そのほかの分野の記号を定義しようという発展途上の国際標準。

###7.1.1.1 Python 3のUnicode文字列

– Python3の文字列はUnicode文字列であり、バイト列ではない。
– 文字のUnicode IDまたは名前を知っている場合、Python文字列でそれを使うことができる。
– Pythonのunicodedataモジュールには双方向ほ変換関数が含まれている。
– lookup():名前(大文字と小文字を区別しない)を与えると、Unicode文字が返される。
– na

元記事を表示

S3を使わずにEC2のストレージを利用して、ファイルを保存する

某expertスクールを卒業後、同じようなやり方で簡易的にpythonでapiをアップロードしようとしたら、権限周りで失敗したので備忘録として

# EC2の種類
簡易的にpythonのapiを作成するため、S3を使わずストレージ中にapiで出てきたファイルを保存します。

– tタイプ
– ubuntu 18.04

# EC2ログイン後
スクールのカリキュラムでは、/var/www/を作成して、その中にアプリを入れていましたが、それでは権限周りでエラーが出てしまうので、ログイン後のhome/ubuntu/直下にgit cloneしましょう。

“`terminal
$ ssh -i /path/my-key-pair.pem ubuntu@x.xxx.xxx.xxx(IPv4アドレス)
# ユーザー名部分はubuntuなので注意(ec2-userではない)

(ログイン後)
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.b

元記事を表示

書籍「15Stepで踏破 自然言語処理アプリケーション開発入門」をやってみる – 2章Step03メモ

# 内容
[15stepで踏破 自然言語処理アプリケーション入門](https://www.amazon.co.jp/dp/4865941320) を読み進めていくにあたっての自分用のメモです。
今回は2章Step03で、自分なりのポイントをメモります。

# 準備
– 個人用MacPC:MacOS Mojave バージョン10.14.6
– docker version:Client, Server共にバージョン19.03.2

# 章の概要
MeCabの動作を理解し、チューニングしてみる。
また、MeCab以外の形態素解析器についても確認する。

# 03.1 MeCab
## 辞書
MeCabによるわかち書きは、辞書に基づいて行われる。
辞書にはMeCabを使った形態素解析から得られる情報は、辞書にどのような情報が登録されているかに依存し、辞書によって登録されている情報が異なる。

|辞書名 |内容 |
|—|—|
|IPAdic |・MeCabが公式に推奨している辞書
・IPAコーパスというデータに基づく |
|UniDic |・UniDicというデータ

元記事を表示

学習記録 その25(29日目)

#学習記録(29日目)
勉強開始:12/7(土)〜

教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/7(土)〜12/19(木)読了
・Progate Python講座(全5コース):12/19(木)〜12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12/21(土)〜12月23日(土)読了
・[Kaggle : Real or Not? NLP with Disaster Tweets](https://www.kaggle.com/c/nlp-getting-started) :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1/4(水)〜1/13(月)読了
・斎藤康毅『ゼロから作るDeep Learning』(オライリージャパン、2016年):1/15(水)〜1/20(月)

#『ゼロから作るDeep Learning

元記事を表示

ポアソン分布を丁寧に理解してPythonで描画する

#はじめに
統計を勉強していると必ず出てくる**ポアソン分布**ですが、例の確率分布の式が中々頭に入ってこなかったので確率分布の導出から丁寧に追って理解しようと考えました。イメージを掴むためにPythonで描画も行います。

##参考
ポアソン分布の理解とその分布の描画を行うに当たって下記を参考にさせていただきました。

– [【大学数学】ポアソン分布(具体例やその意味、ポアソンの極限定理)【確率統計】
](https://www.youtube.com/watch?v=1r_tSjZCNzg)
– [統計学入門 (基礎統計学Ⅰ)](https://www.amazon.co.jp/dp/4130420658/ref=cm_sw_r_tw_dp_U_x_8L-iEb9PPP2E0)
– [ポアソン分布とは何か。その性質と使い方を例題から解説 【馬に蹴られて死ぬ兵士の数を予測した数式】](https://atarimae.biz/archives/7372)
– [ポアソン分布の期待値・分散の導出(証明)
](https://to-kei.net/distribution/poisson

元記事を表示

AtCoder Beginner Contest 042 過去問復習

#所要時間
スクリーンショット 2020-01-20 17.01.16.png

#感想
ライブラリゲー、D問題初見では厳しそう。

#[A問題](https://atcoder.jp/contests/abc042/tasks/abc042_a)

5,5,7が入ってればYES

“`python:answerA.py
x=list(map(int,input().split()))
x.sort()
print(“YES” if x==[5,5,7] else “NO”)
“`

#[B問題](https://atcoder.jp/contests/abc042/tasks/abc042_b)

ソートすれば辞書順になるので、その後に順番に繋げてしまえば良い。

“`python:answerB.py

元記事を表示

QRコードをCNNで解読する

#はじめに
畳み込みを使ったCNNは白黒の二次元画像の特徴量を抽出するのが比較的得意です。白黒画像といえばQRコードが挙げられるのでこのQRコードの値をCNNで読み込めるかどうかを試してみます。
本当は白黒のどのビットがどの値かというのはルールベースで読み取れますし、畳み込みを使わないNNでも充分であるわけですが、ここではあえてCNNを使ってみます。
#QRコードのあれこれ
QRコードのversionはQRコードのサイズと自ら含むことのできる文字数に依存します。
例えばversion=1では21×21のサイズで下記のように”www.wikipedia.org” と17文字の文字列を含むことができます。E1~E7はエラー補正なので読み取りは必須ではありません。つまり、この場合は各文字は8bitですから計136bitの値を確認すればルールベースでもこのサイズで何が書いてあるかは読めるわけです。
とりあえずこの最小QRコード21×21に書かれた数字を読むことを目的とします。
![1280px-QR_Character_Placement.svg.png](https://qiita-imag

元記事を表示

OTHERカテゴリの最新記事