numpyのndarrayで内積と外積を計算

内積(v^t v)や行列の積はndarrayのdotメソッドでできるが、外積(v v^t)はどうやってやるんだろう…それらしきメソッドがないなぁ…と思ったらouterって関数があった。めでたしめでたし。

In [833]: array([1, 2, 3])
Out[833]: array([1, 2, 3])

In [834]: v = _

In [835]: v.dot(v)
Out[835]: 14

In [836]: outer(v, v)
Out[836]: 
array([[1, 2, 3],
       [2, 4, 6],
       [3, 6, 9]])