4

私が非常に感謝しているものがあります.Pythonで配列の次元に名前を付ける機能です。たとえば、3 次元の numpy 配列があり、特定の次元に沿って定期的に合計する必要があります。

だから私は ndarray で行うことができますa

sum(a, axis=2)

関連する次元が最後の次元であるが、「位置に依存しない」ようにしたい場合。つまり、ユーザーは、「この次元は「DI」である」と指定する限り、任意の配列を提供できます (たとえば、「対象の次元」の場合)。 )。だから基本的に私は書くことができるようにしたいと思います:

sum(a, axis="DI")

NETCDF に近いですが、netcdf 機能全体を実装したくありません。

4

2 に答える 2

3

@ M456のアイデアは賢いですが、複数の配列に同じ命名スキームがある場合、より簡単な解決策は辞書を使用することだと思います:

axes = { 'DA': 0, 'DB':1 }
a.sum(axes['DA'])

または変数だけでも:

DA, DB, DC = range(3)
a.sum(DA)

それが最後の(または最後から2番目などの)軸である必要がある場合は、-1(または-2など)を使用してください:

a.shape
#(2,3,4)

np.all(a.sum(2) == a.sum(-1))
#True
np.all(a.sum(0) == a.sum(-3))
#True
于 2013-05-06T19:52:42.297 に答える