Subscribed unsubscribe Subscribe Subscribe

np.dot

Python

numpyの行列積を表すときにだいたいdotメソッドを使うと思いますが、先日読んだ記事ではpython3.5以降では@マークで行列積を表すことができるそうです。

>>> import numpy as np
>>> a = np.arange(0, 6).reshape(3, 2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5]])
>>> b = np.arange(6, 10).reshape(2, 2)
>>> b
array([[6, 7],
       [8, 9]])
>>> a.dot(b)
array([[ 8,  9],
       [36, 41],
       [64, 73]])
>>> np.dot(a, b)
array([[ 8,  9],
       [36, 41],
       [64, 73]])
>>> a@b
array([[ 8,  9],
       [36, 41],
       [64, 73]])

上記の通り、すべて同じ結果になってますね。
dotメソッド自体は個人的には明示的に書かれていて、何をしているかわかりやすいと思うので、そんなに@を使うときがあるとは思えないですが、条件式の中に書く場合など、あまりごちゃごちゃさせたくないときは使いやすそうですね。

以下参考
neovisionconsulting.blogspot.jp

この記事は翻訳されたものですが、原文を書いている人はSebastian Raschkaという方でPython機械学習プログラミングという本を書かれている方です。アマゾンで検索していただけると割りと上の方に出てくる書籍だと思います。機械学習を学ぼうと思って、その本を読んでみましたが、完全に内容を理解できたわけではないですが、比較的わかりやすい本であったと思われます。ぜひ一度読んでみてください。

Remove all ads