1. ホーム
  2. python

[解決済み] 2次元numpy配列の全列の合計を計算する方法(効率的)

2023-08-03 03:56:10

質問

4行3列からなる以下の2次元numpy配列があるとします。

>>> a = numpy.arange(12).reshape(4,3)
>>> print(a)
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]

すべての列の合計を含む 1 次元配列を生成する効率的な方法は何でしょうか(たとえば [18, 22, 26] )? これは、すべての列をループする必要なしに行うことができますか?

どのように解決するのですか?

のドキュメントを確認してください。 numpy.sum のドキュメントを確認し、特に axis パラメータに特に注意してください。列の上に合計する。

>>> import numpy as np
>>> a = np.arange(12).reshape(4,3)
>>> a.sum(axis=0)
array([18, 22, 26])

または、行の和をとる。

>>> a.sum(axis=1)
array([ 3, 12, 21, 30])

その他の集計機能として numpy.mean , numpy.cumsum そして numpy.std などを取ることもできます。 axis パラメータを使用します。

から Numpyチュートリアル(暫定版) :

<ブロッククオート

配列の全要素の和を計算するような単項演算の多くは のメソッドとして実装されています。 ndarray クラスのメソッドとして実装されています。 デフォルトでは デフォルトでは、これらの操作は配列が数値のリストであるかのように適用されます。 のリストとして適用されます。しかし axis パラメータを指定することで,配列の指定された軸に沿った操作を適用することができます。 配列に適用することができます。