numpy.average
-
numpy.average(a、axis=None、weights=None、returned=False、*、keepdims=<値なし>)
[source]
指定された軸に沿って加重平均を計算します。
-
Parameters
-
a
array_like
平均化するデータを含む配列。
a
が配列でない場合は、変換が試行されます。
-
axisNone、int、または int のタプル、オプション
a
の平均を求める軸。デフォルトの axis=None では、入力配列のすべての要素の平均が計算されます。軸が負の場合、最後の軸から最初の軸までカウントされます。
axis が int のタプルの場合、前のように 1 つの軸またはすべての軸ではなく、タプルで指定されたすべての軸で平均化が実行されます。
-
weights
array_like, optional
a
の値に関連付けられた重みの配列。
a
の各値は、関連する重みに従って平均に寄与します。重み配列は 1 次元 (この場合、その長さは指定された軸に沿った
a
のサイズでなければなりません) または
a
と同じ形状のいずれかにすることができます。
weights=None
の場合、
a
内のすべてのデータの重みは 1 に等しいとみなされます。1 次元の計算は次のとおりです。
avg = sum(a * weights) / sum(weights)
weights
の唯一の制約は、
sum(weights)
が 0 であってはいけないことです。
-
returned
bool, optional
デフォルトは
False
です。
True
の場合はタプル (
average
、
sum_of_weights
) が返され、それ以外の場合は平均のみが返されます。
weights=None
の場合、
sum_of_weights
は平均がとられる要素の数に相当します。
-
keepdims
bool, optional
これが True に設定されている場合、縮小された軸はサイズ 1 の次元として結果に残ります。このオプションを使用すると、結果は元の
a
に対して正しくブロードキャストされます。注:
keepdims
は、
numpy.matrix
のインスタンスや、メソッドが
keepdims
をサポートしていない他のクラスでは機能しません。
-
Returns
-
retval、[sum_of_weights]array_type、または double
指定された軸に沿った平均を返します。
returned
が
True
の場合、最初の要素として平均、2 番目の要素として重みの合計を含むタプルを返します。
sum_of_weights
は
retval
と同じタイプです。結果の dtype は一般的なパターンに従います。
weights
が None の場合、結果の dtype は
a
の値、または
a
が整数の場合は
float64
になります。それ以外の場合、
weights
が None ではなく、
a
が非整数の場合、結果の型は、
a
と
weights
の両方の値を表現できる最も精度の低い型になります。
a
が整数である場合も、以前のルールが適用されますが、結果の dtype は少なくとも
float64
になります。
Raises
-
ZeroDivisionError
軸に沿ったすべてのウェイトがゼロの場合。このタイプのエラーに対して堅牢なバージョンについては、
numpy.ma.average
を参照してください。
TypeError
1D
weights
の長さが
a
の軸に沿った形状と同じでない場合。
Examples
>>> data = np.arange(1, 5)
array([1, 2, 3, 4])
>>> np.average(data)
>>> np.average(np.arange(1, 11), weights=np.arange(10, 0, -1))
>>> data = np.arange(6).reshape((3, 2))
array([[0, 1],
[2, 3],
[4, 5]])
>>> np.average(data, axis=1, weights=[1./4, 3./4])
array([0.75, 2.75, 4.75])
>>> np.average(data, weights=[1./4, 3./4])
Traceback (most recent call last):
TypeError: Axis must be specified when shapes of a and weights differ.
>>> a = np.ones(5, dtype=np.float128)
>>> w = np.ones(5, dtype=np.complex64)
>>> avg = np.average(a, weights=w)
>>> print(avg.dtype)
complex256
keepdims=True
の場合、次の結果は (3, 1) の形状になります。
>>> np.average(data, axis=1, keepdims=True)
array([[0.5],
[2.5],
[4.5]])
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.23/reference/generated/numpy.average.html