SlideShare a Scribd company logo
実験心理学者のためのPython
2018/03/16
Masataka Miyoshi
1
目的
Pythonの簡単さと便利さを伝える
話すこと
1. Pythonとは?
2. Jupyter Notebookの紹介
3. PsychoPyによる実験作成
4. Pandasによる実験時のデータフレーム操作
5. 実験作成デモ
About me
千葉大学人文社会科学研究科所属(M2)
研究テーマは注意課題の上下視野異方性(今日の話とは無関係)
2
1. Pythonとは?
3
特徴
汎用プログラミング言語
動的型付けの高水準インタープリタ言語
R, Matlabライクな操作感
「読みやすい」という設計哲学
半年前書いたコードを読むのが辛かったこと、ありませんか?
コミュニティが大きい
StackOverflowに行けばたいていの問題が解決する
4
Pythonでできること
実験プログラムの作成
データの集計や(簡単な) 分析
Pythonでできないこと
分散分析やランダム変量が2個以上の線形混合モデル
PythonにANOVA君は無い
餅は餅屋、分析はRに任せたほうが楽かも
一応線系混合モデル自体は組める
現状、Rは統計寄りで、Pythonは機械学習寄りと言われることが多い。
5
言語機能1: 組み込み型
1 # int
10 - 3 # 7
2.5 # float
2.5 * 2 # 5.0
[1, 2, 3] # list
[1, 2, 3] + [4, 5] # [1, 2, 3, 4, 5]
[1, 2] * 2 # [1, 2, 1, 2]
(1, 2, 3) # tuple
'ほげ' # str
'ほげ' + 'hoge' # ほげhoge
'ほげ' * 2 # 'ほげほげ'
6
言語機能2: if, for, def
# もし1 + 1と2が等しいなら
if 1 + 1 == 2:
print('hoge') # hoge
# リスト内の要素 (1, 2, 3) ごとに計3回ループを回す
for i in [1, 2, 3]:
print(i) # 1, 2, 3
# defで関数を定義する
def add3(x):
return x + 3
add3(2) # 5
add3(31) # 34
7
2. Jupyter Notebookの紹介
8
Jupyter Notebookとは
Pythonの統合開発環境(RやJuliaも使える)
サーバーを立ててブラウザ上で動かす(Rstudio Serverと同じ)
対話型の実行環境
9
なにが嬉しいか
実験プログラムを1行単位でデバッグしながら作成できる
刺激をひとつひとつ確認しながら作れる
間違えてもその場で作り直せる
コマンドを覚えなくておよい
tab補完できる
 コマンド名? でヘルプを開き引数などを確認できる
10
準備
1. Anaconda (計算ライブラリ全部のせPython) をインストールする
バージョンは3.6を選択してください
2. Anaconda Promptを開いて以下を実行しておく
 pip install psychopy 
ちょうど今朝正式版がリリースされました
3. Anaconda Navigatorを開いてJupyter Notebookを選択
Jupyter Labもおすすめです
2系を使いたい場合、スクリプトの最初に以下を追記してください。
from __future__ import division, unicode_literals
11
新規notebookを開く
↓
12
3. PsychoPyによる実験作成
13
PsychoPyとは
実験作成ツール
Matlab/PsychToolBoxと並ぶユーザー数
オープンソース(GitHub ‑> psychopy/psychopy)
googleトレンドより
14
まずはHello World (visual.TextStim)
from psychopy import visual
# ウィンドウの作成
win = visual.Window(units='pix')
# 文字刺激の作成
msg = visual.TextStim(win, 'Hello, world!')
# 文字刺激の描画
msg.draw()
# 描画した文字刺激の呈示
win.flip()
画面中央に「Hello, world!」が呈示されたら成功。
15
# 文字の大きさを40pxに指定する (height)
msg = visual.TextStim(win, 'hoge', height=40)
# 文字の色を黒に指定する (color)
msg = visual.TextStim(win, 'hoge', color=(-1, -1, -1))
# 文字の中心の位置を (100, 100) の座標に指定する
msg = visual.TextStim(win, 'hoge', pos=(100, 100))
# フォントを日本語を呈示できるipaexgothicに指定する
msg = visual.TextStim(win, 'ほげ', font='ipaexgothic')
IPAexGothicのダウンロードはこちらから(ページ中段)
フォント指定しないと、日本語表示はうまくいかないことが多い
 visual.TextStim? でヘルプが見れる
困ったときはヘルプを見れば、たいていの問題は解決する
16
枠の呈示(visual.ShapeStim)
vertices = (
(-100, -100), # 左下から
(-100, 100), # 時計
(100, 100), # 周りで
(100, -100), # 一周する
)
stim = visual.ShapeStim(win, vertices=vertices)
stim.draw()
win.flip()
画面中央に(1辺200pxの) 正方形が呈示されたら成功。
17
# 閉じた形にしない (closeShape; ここでは冂ができる)
stim = visual.ShapeStim(
win, vertices=vertices, closeShape=False)
# 赤色で塗りつぶす (fillColor)
stim = visual.ShapeStim(
win, fillColor=(1, -1, -1), vertices=vertices)
 visual.ShapeStim? でヘルプが見れる
線の色・幅、透明度など色々操作できる
後から形を変えたい場合は
vertices = ((-100, -100), (0, 100), (100, -100))
stim.setVertices(vertices) # 三角形になった
他の引数もset◯◯で後から変更可能(visual.TextStimも同様)
18
反応の取得(event.waitKeys)
from psychopy import event
msg = visual.TextStim(win, 'Press space key.')
msg.draw()
win.flip()
keys = event.waitKeys(keyList=['space']) # spaceのみ許可
keys # ['space']
3秒の制限時間を設けるなら、
keys = event.waitKeys(maxWait=3, keyList=['space'])
keys # 3秒押さなかった場合何も入ってない (Noneが入っている)
19
待機(core.wait)
from psychopy import core
core.wait(3)
右上を見ると、3秒間実行中になっているのが分かる。
これで「試行開始から刺激呈示まで0.5秒待つ」などできる。
20
反応時間の取得(core.Clock)
clock = core.Clock()
core.wait(1)
core.wait(2)
clock.getTime() # 約3秒 (clockを作ってから経過した時間)
実際に使うときは↓
clock = core.Clock()
# ...
t_start = clock.getTime()
# ...
t_end = clock.getTime()
elapsed_time = t_end - t_start # 単位: 秒
21
この時点ですでに、空間手がかり課題の刺激呈示が可能。
win = visual.Window()
msg = 文字刺激; cue = 図形刺激; target = 図形刺激
clock = core.Clock()
msg.draw()
win.flip() # メッセージ呈示
event.waitKeys(keyList=['space']) # 試行開始待ち
core.wait(0.5)
cue.draw()
win.flip() # 手がかり刺激呈示
core.wait(0.2) # SOAぶん待つ
target.draw()
win.flip() # ターゲット刺激呈示
t_start = clock.getTime() # 反応時間計測開始
keys = event.waitKeys(keyList=['left', 'right'])
t_end = clock.getTime() # 反応時間計測終了
elapsed_time = t_end - t_start
22
3'. PsychoPy Tips
23
刺激のサイズ設定
 win = visual.Window() 時に deg  cm  pix などが指定できます。
私見ですが、一番素朴で間違いが生じにくいのは pix なので、基本的
にこれを使っていけば良いと思います。
PX_PER_CM = 34 # 34pxで1cmだった場合
win = visual.Window(units='pix')
txt = visual.TextStim(
win, 'hoge', height=2 * PX_PER_CM)
txt.draw()
win.flip() # 視角2度の「hoge」が呈示される
24
時間に厳密な刺激呈示
たとえばRSVP系列刺激を呈示する場合など。
悪い例
SOA = 0.09 # in second
ISI = 0.01
for i in range(10):
# 刺激を呈示して90ms待つ
hoge_stim.draw()
win.flip()
core.wait(SOA)
# 刺激を呈示して10ms待つ
win.flip()
core.wait(ISI)
25
時間に厳密な刺激呈示
If the screen is refreshing at 60Hz (16.7ms per frame) and the
getTime() call reports that the time has reached 1.999s, then the
stimulus will draw again for a frame, in accordance with the while
loop statement and will ultimately be displayed for 2.0167s.
公式マニュアルより。
時間指定による時間制御において、最大でフレームの長さと同程度の誤
差が生じる。
26
時間に厳密な刺激呈示
 win.flip() がフレーム単位で実行されるトリックを利用する。
よい例
SOA = 5 # in frame
ISI = 1
for i in range(10):
# 5フレーム刺激を呈示する
for j in range(SOA):
hoge_stim.draw()
win.flip()
# 1フレームブランクを呈示する
for j in range(ISI):
win.flip()
27
キー押し状態やキーリリースの取得
 event.getKeys はキーが押され「た」かどうかしか取得できない。
 pyglet.window.key を使えば、キーが押され「ている」かどうかを判
定できる。
import pyglet.window.key
win = visual.Window()
key = pyglet.window.key
keyboard = key.KeyStateHandler()
win.winHandle.push_handlers(keyboard)
...
if keyboard[key.F]:
print('Key "f" is pressed.')
28
落とし穴
呈示したウィンドウが「応答なし」になる
問題ない。刺激呈示も反応取得も可能
フルスクリーン(  visual.Window(fullscr=True) ) にすれ
ば発生しなくなる
 ImportError: No module named hoge 
 pip install hoge でインストールすればOK
たまに import 時の名前とパッケージ名が違う点に注意
間違って前の被験者のファイルに上書き保存してしまわないか不安
ファイル作成済みなら例外を送出するよう対策しましょう
import os
filename = 'hoge.csv'
if os.path.exists(filename):
raise FileExistsError('File already exists!!!')
29
よいコードを書くために
半年後の自分が理解できるかどうか意識しておくとよいと思います。
The Zen of Python (  import this ) に従う
Pythonプログラマの心構えを簡潔にまとめたもの
驚き最小の原則を意識する
余計なことをせず、シンプルに保つ(KISS, YANGI)
"Keep it simple, stupid"
"You aren't gonna need it"
よいIDEを使う
Jupyter (Notebook|Lab)、Spyder、PyCharmなど
PsychoPy Coderはそれらに比べると扱いづらい
30
4. Pandasによる実験時のデータフレーム操作
31
(の前に...) 実験条件をどう作るか
 itertools で条件の組み合わせを作るのが一番簡単。
import itertools
conditions = list(itertools.product( # 直積 = 組み合わせ
('a1', 'a2'),
('b1', 'b2'),
))
conditions
[('a1', 'b1'),
('a1', 'b2'),
('a2', 'b1'),
('a2', 'b2')]
32
実験条件をどう扱うか
 pandas で出力される表を予め作っておくとよい。
import itertools
import pandas as pd
conditions = list(itertools.product(
range(12), # 繰り返し12回
('a1', 'a2'), # 条件A
('b1', 'b2'), # 条件B
))
df = pd.DataFrame(
conditions,
columns=['block', 'A', 'B']
)
33
実験条件をどう扱うか
 pandas で出力される表を予め作っておくとよい。
df.head(8) # 先頭8行を表示
block A B
0 0 a1 b1
1 0 a1 b2
2 0 a2 b1
3 0 a2 b2
4 1 a1 b1
5 1 a1 b2
6 1 a2 b1
7 1 a2 b2
34
試行順序をどう設定するか
 sample() でシャッフル→  sort_values() でブロック順にソート。
df = df.sample(frac=1) # 縦方向にシャッフル
df.sort_values('block', inplace=True) # blockでソート
df.head(8)
block A B
3 0 a2 b2
0 0 a1 b1
2 0 a2 b1
1 0 a1 b2
7 1 a2 b2
5 1 a1 b2
4 1 a1 b1
6 1 a2 b1
df.reset_index(drop=True, inplace=True) # indexの初期化
35
反応をどこに記録するか
 df に新しい列を作り試行ごとに記録していくとよい。
df['resp'] = ''
df['RT'] = 0
df.head()
block A B resp RT
0 0 a2 b1 0
1 0 a2 b2 0
2 0 a1 b2 0
3 0 a1 b1 0
4 1 a2 b1 0
36
反応をどこに記録するか
 df に新しい列を作り試行ごとに記録していくとよい。
# インデックス1番の'resp'列と'RT'列にそれぞれ値を代入する
df.loc[1, ['resp', 'RT']] = ['left', 200]
df.head()
block A B resp RT
0 0 a2 b1 0
1 0 a2 b2 left 200
2 0 a1 b2 0
3 0 a1 b1 0
4 1 a2 b1 0
37
データフレームの出力
好きなエンコーディングで出力できる。
df.to_csv('output.csv', encoding='utf-8')
df.to_csv('output.csv', encoding='shift-jis')
ファイルエンコーディングは目的に合わせて選ぶ。
 utf-8 ... Excel以外のほぼ全てにおける標準の文字コード
 shift-jis ... Excelで分析する予定ならこちらの文字コード
(  utf-8 形式のcsvファイルをExcelで開くと文字化けします)
38
実験の流れ
ここまでの手順でベーシックな実験が作れるようになりました。
import 色々
df = pd.DataFrame(...)
win = visual.Window(...)
# ... 刺激やメッセージを作る ...
for 試行 in 試行数:
刺激呈示 (visual.ShapeStim.draw, visual.Window.flip)
反応取得 (event.waitKeys, core.Clock)
反応記録 (pd.DataFrame.iloc[...] = [...])
終了メッセージ呈示
データ保存 (pd.DataFrame.to_csv)
39
ループは df.iterrows() で
for i, row in df.iterrows(): # iterはiterationの略
print('==========')
print(i, '試行目') # iには現在の試行数が入る
print(row) # その試行数目の行の要素が入る
==========
0 試行目
block 0
A a2
B b1
==========
1 試行目
block 0
A a2
B b2
40
5. 実験作成デモ
残り時間に応じて、話せるところまで話します。
空間手がかり課題
簡易版
正式版
Attentional Blink課題
41

More Related Content

What's hot

最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
小川 雄太郎
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
Shintaro Fukushima
 
[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ
Deep Learning JP
 
PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方
HiroyukiSogo
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
nishio
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
tancoro
 
機械学習 入門
機械学習 入門機械学習 入門
機械学習 入門
Hayato Maki
 
情報検索とゼロショット学習
情報検索とゼロショット学習情報検索とゼロショット学習
情報検索とゼロショット学習
kt.mako
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!takehikoihayashi
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
Yusuke Uchida
 
パンでも分かるVariational Autoencoder
パンでも分かるVariational Autoencoderパンでも分かるVariational Autoencoder
パンでも分かるVariational Autoencoder
ぱんいち すみもと
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
Yoshitake Takebayashi
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Preferred Networks
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
Kensho Hara
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
 
(DL輪読)Matching Networks for One Shot Learning
(DL輪読)Matching Networks for One Shot Learning(DL輪読)Matching Networks for One Shot Learning
(DL輪読)Matching Networks for One Shot Learning
Masahiro Suzuki
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
Satoshi Hara
 
主成分分析
主成分分析主成分分析
主成分分析
大貴 末廣
 
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
生成系ニューラルネットワークまとめ Summary of  Generative Neural Network生成系ニューラルネットワークまとめ Summary of  Generative Neural Network
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
Youichiro Miyake
 

What's hot (20)

最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925最近のディープラーニングのトレンド紹介_20200925
最近のディープラーニングのトレンド紹介_20200925
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
 
[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ[DL輪読会]Dense Captioning分野のまとめ
[DL輪読会]Dense Captioning分野のまとめ
 
PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方PsychoPy Builder:Code Componentの使い方
PsychoPy Builder:Code Componentの使い方
 
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
 
強化学習その3
強化学習その3強化学習その3
強化学習その3
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
機械学習 入門
機械学習 入門機械学習 入門
機械学習 入門
 
情報検索とゼロショット学習
情報検索とゼロショット学習情報検索とゼロショット学習
情報検索とゼロショット学習
 
比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!比例ハザードモデルはとってもtricky!
比例ハザードモデルはとってもtricky!
 
畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化畳み込みニューラルネットワークの高精度化と高速化
畳み込みニューラルネットワークの高精度化と高速化
 
パンでも分かるVariational Autoencoder
パンでも分かるVariational Autoencoderパンでも分かるVariational Autoencoder
パンでも分かるVariational Autoencoder
 
潜在クラス分析
潜在クラス分析潜在クラス分析
潜在クラス分析
 
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
 
3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向3D CNNによる人物行動認識の動向
3D CNNによる人物行動認識の動向
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
(DL輪読)Matching Networks for One Shot Learning
(DL輪読)Matching Networks for One Shot Learning(DL輪読)Matching Networks for One Shot Learning
(DL輪読)Matching Networks for One Shot Learning
 
機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)機械学習モデルの判断根拠の説明(Ver.2)
機械学習モデルの判断根拠の説明(Ver.2)
 
主成分分析
主成分分析主成分分析
主成分分析
 
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
生成系ニューラルネットワークまとめ Summary of  Generative Neural Network生成系ニューラルネットワークまとめ Summary of  Generative Neural Network
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
 

Similar to 実験心理学者のためのPython

Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
Tomoya Nakayama
 
2023_freshman
2023_freshman2023_freshman
2023_freshman
TakaakiYonekura
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
kunihikokaneko1
 
DS Exercise Course 2
DS Exercise Course 2DS Exercise Course 2
DS Exercise Course 2
大貴 末廣
 
Java勉強会2017.3.17
Java勉強会2017.3.17Java勉強会2017.3.17
Java勉強会2017.3.17
technologicarts
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto studyNaoya Inada
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
SatoYu1ro
 
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンスJupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
infinite_loop
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
Etsuji Nakai
 
はじめてのPython
はじめてのPythonはじめてのPython
はじめてのPythonKatsumi Honda
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
KAIKenzo
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
 
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
CODE BLUE
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
Sony Network Communications Inc.
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
ユニットテスト_2日目
ユニットテスト_2日目ユニットテスト_2日目
ユニットテスト_2日目Yoshiki Shibukawa
 
10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger
Satoshi Yamada
 

Similar to 実験心理学者のためのPython (20)

Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
2023_freshman
2023_freshman2023_freshman
2023_freshman
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
 
DS Exercise Course 2
DS Exercise Course 2DS Exercise Course 2
DS Exercise Course 2
 
Java勉強会2017.3.17
Java勉強会2017.3.17Java勉強会2017.3.17
Java勉強会2017.3.17
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto study
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
Pythonでゲーム作る
Pythonでゲーム作るPythonでゲーム作る
Pythonでゲーム作る
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンスJupyterNotebookとMySQLでゼロからはじめるデータサイエンス
JupyterNotebookとMySQLでゼロからはじめるデータサイエンス
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
 
はじめてのPython
はじめてのPythonはじめてのPython
はじめてのPython
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
 
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
ユニットテスト_2日目
ユニットテスト_2日目ユニットテスト_2日目
ユニットテスト_2日目
 
10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger10080分でPythonからIP Messeneger
10080分でPythonからIP Messeneger
 

実験心理学者のためのPython