Pynyumon#4lt

35
teratail質問するときのtips Python入門者の集い #4 LT driller@patraqushe 2017/02/20

Transcript of Pynyumon#4lt

teratailで質問するときのtips

Python入門者の集い #4 LTdriller@patraqushe2017/02/20

誰?

◉ drillerです◉ トレーダーやってます◉ twitter: @patraqushe◉ 最近は息抜きにteratailの質問に回答しています

今年からやり始めて28人切り

宣伝1

Python + 金融のコミュニティやってます

3月中旬-下旬にもくもく会やります

金融に興味があるかたは是非ご参加ください

宣伝2

みんなのPython勉強会#22で講演します

3月8日(水) 19:00-

WindowsでPython使うときのノウハウ的な内容です

teratailで質問したことがありますか?

怖い?

Python界隈は優しい人が多い

※ 個人の感想です

答えが返ってくるの?

※ 2017/02/20現在

回答率92.16%

Q:質問するときのコツはるの?

A:あります!

A:回答者の立場に立ってみる

たったそれれだけ?

それだけです!

どんな質問をすればよいのか

今回は回答者側から見て

◉ 回答したくなる or したくない◉ 回答しやすい or しにくい

質問を考えてみます

今回のスコープ

今回話さないこと

◉ 一般的な相談事◉ 技術的ではないこと◉ 抽象度が高いこと

今回話すこと

◉ コーディングの質問◉ 結果が明確な質問

試験問題どっちから解きますか?

Tips1:可能な限り問題を単純化しよう

結果が明確なのに抽象度が高い質問

質問者が期待していた答え

回答者が想定している答え

Q A

こういうことにならないように

Tips2:期待する結果を明確に定義しよう

サンプルデータ

行名に1,2、列名にA,B、A列1行にはA1、B列1行にはB1、B列1行にはB1、A列2行にはA2、B列2行にはB2というデータフレームがあります。

下記のようなデータフレームがあります。

StringIOの活用

回答者側がファイルを用意する必要がなくなる

乱数を扱う場合はnumpy.random.seedを活用

rand.py

from numpy import random

random.seed(123)

print(random.rand(2))

python rand.py

[ 0.69646919 0.28613933]

python rand.py

[ 0.69646919 0.28613933]

python rand.py

[ 0.69646919 0.28613933]

乱数が毎回同じになる→ 答え合わせができる

サンプルデータ

◉ StringIOを利用して、ファイルの読み書きも省略できることがある

◉ スクレイピング等の場合はURLがあったほうがよい

◉ 可能な限りコードのコピペで済むようになるとやりやすい

◉ Numpyの乱数を扱う場合はseedを指定してあげると同じ乱数がでて結果を共有しやすい

Tips3:扱いやすいサンプルデータを

用意しておこう

どっちのコードを読む?

Tips4:PEP8に準拠しよう

役に立つパッケージ

◉ pep8◉ flake8◉ autopep8

○ Jupyte notebookを使っている場合はnbextensionsと組み合わせると便利

◉ 他色々

もっと手っ取り早く回答者の

気持ちになる方法があります

Tips5:回答者になってみよう

たくさん使うとこんなのがもらえる

まとめ

1. 可能な限り問題を単純化する2. 期待する結果を明確に定義する3. 扱いやすいサンプルデータを用意する4. PEP8に準拠する5. 回答者になってみる

teratailを活用しよう!