IPythonでのrandn()関数の使用

以前頂いたこの本を使う時間が無かった(使う機会も無かった)ので完全に忘れている。
もう一度読みなおしているけど、初心者的なところで躓くので細かいけどメモ。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

本書では下記コードだけが記載されていてその通り実行したけど動かん!

In [9]: data = {i : randn() for i in range(7)}

実行結果は下記。

In [9]: data = {i : randn() for i in range(7)}
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-9-58d8ce2ba8b6> in <module>()
----> 1 data = {i : randn() for i in range(7)}

<ipython-input-9-58d8ce2ba8b6> in <dictcomp>((i,))
----> 1 data = {i : randn() for i in range(7)}

NameError: global name 'randn' is not defined

randn()が悪さをしているので調べたら、numpyの関数じゃん。
次のようにしたら動作。

In [11]: from numpy.random import randn
In [12]: data = {i : randn() for i in range(7)}
In [13]: data
Out[13]:
{0: -1.9795760074023678,
 1: 0.28142125006429436,
 2: -0.6317888487854628,
 3: 0.5241360301379285,
 4: 1.313560914784094,
 5: -0.0026504561268659026,
 6: 0.7861776960453999}

まぢでしょーもない。