NumPy に n 次元配列があります。スライス内のすべての要素の合計を計算したいと思います。例えば:
値を持つ次の 2x2x2 3D 配列がある場合:
z = 1
1 2
3 4
z = 2
5 6
7 8
z = 1 のスライスを取得する場合は 10 を取得し、z = 2 の場合は 26 を取得します。
3D 空間では次のように使用できますが、n 次元空間ではどのように使用できますか?
(array.sum(axis = 0)).sum(axis = 0)
NumPy に n 次元配列があります。スライス内のすべての要素の合計を計算したいと思います。例えば:
値を持つ次の 2x2x2 3D 配列がある場合:
z = 1
1 2
3 4
z = 2
5 6
7 8
z = 1 のスライスを取得する場合は 10 を取得し、z = 2 の場合は 26 を取得します。
3D 空間では次のように使用できますが、n 次元空間ではどのように使用できますか?
(array.sum(axis = 0)).sum(axis = 0)
あなたはこれを複雑にしすぎていると思います:
>>> a=(np.arange(8)+1).reshape(2,2,2)
>>> a
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
>>> np.sum(a[0])
10
>>> np.sum(a[1])
26
>>> a[:,0]
array([[1, 2],
[5, 6]])
>>> np.sum(a[:,0])
14
th 次元i
に沿って th スライスを合計するには、次のようにします。d
arr.take([i], axis=d).sum()