私はいくつかのより多くのテストを追加し、それが表示されますarray
配列/行列が小さい場合には、matrix
よりもかなり高速ですが、大きなデータ構造ではその差は小さくなります。
小:
In [11]: a = [[1,2,3,4],[5,6,7,8]]
In [12]: aa = np.array(a)
In [13]: ma = np.matrix(a)
In [14]: %timeit aa.sum()
1000000 loops, best of 3: 1.77 us per loop
In [15]: %timeit ma.sum()
100000 loops, best of 3: 15.1 us per loop
In [16]: %timeit np.dot(aa, aa.T)
1000000 loops, best of 3: 1.72 us per loop
In [17]: %timeit ma * ma.T
100000 loops, best of 3: 7.46 us per loop
大きな:行列が乗算に若干速い実際に
In [19]: aa = np.arange(10000).reshape(100,100)
In [20]: ma = np.matrix(aa)
In [21]: %timeit aa.sum()
100000 loops, best of 3: 9.18 us per loop
In [22]: %timeit ma.sum()
10000 loops, best of 3: 22.9 us per loop
In [23]: %timeit np.dot(aa, aa.T)
1000 loops, best of 3: 1.26 ms per loop
In [24]: %timeit ma * ma.T
1000 loops, best of 3: 1.24 ms per loop
注意してください。
私がここにいるのは、@Jaimeがコメントを説明しているものと一致していると思います。
重複した[http://stackoverflow.com/questions/4151128/what-are-the-differences-between-numpy-arrays-and-matrices-which-one-should-iu](http://stackoverflow .com/questions/4151128/what-are-the-differences-numpy-arrays-and-matrices-which-one-should-iu) – jozzas
はい、しかし、私の質問は性能に関するものです。 。その焦点をより明確にするために質問を編集します。 – lollercoaster
重要なパフォーマンスの影響があるのではないかと疑いますが、作成したオブジェクトを使って*行うことを計画していることを正確に知らなければ、言うことは難しいです。なぜ、いくつかのテスト関数を作り、 'timeit'を試してみてはどうですか? – mgilson