しんさんのブログ

科学や技術のこと読書のことなど

numpyで行列を扱うときに気持ち悪いこと

例えば以下のような行列計算をnumpyで書くときに皆さんはどのようにしますか。

A:1行2列の行列
B:2行3列の行列
C: C = AxB -> 1行3列の行列

このとき,
A= np.random.rand(2)
B= np.random.rand(2,3)
C= np.random.rand(3)
と書くことが多いですが、
A, B, Cをshapeで見ると

A: (2,)
B: (2,3)
C: (3,)

となっていて、(行の数、列の数)となっていなくて非常に気持ち悪いです

以下のように書くと,
A= np.random.rand(1, 2)
B= np.random.rand(2, 3)
C= np.random.rand(1, 3)
のほうがしっくりくるのですがどうでしょうか。

テンソルの足の縮約を考えた時も上の書き方のほうが数学の表記とあっていてすっきりします。