web-dev-qa-db-ja.com

Numpy:newaxisまたはNoneを使用する必要がありますか?

Numpyでは、スライス構文で「newaxis」オブジェクトを使用して、長さ1の軸を作成できます。例:

import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)

ドキュメントの状態Noneの代わりにnewaxisを使用することもできますが、効果はまったく同じです。

どちらかを選択する理由はありますか?一般的な好みやスタイルのガイドはありますか?私の印象では、newaxisの方が人気があると思います。おそらくより明確だからです。 Noneが許可される理由はありますか?

80
nikow

Noneは、numpy.newaxisは、単にNoneのエイリアスです。

In [1]: import numpy

In [2]: numpy.newaxis is None
Out[2]: True

著者は、おそらく便利な定数が必要であり、Noneが利用可能であったため、それを選択したでしょう。

newaxisよりもNoneを好む理由:主に、それはより明示的であり、一部はnumpy作者がいつかNone。 (彼らは計画しておらず、おそらくそうしませんが、Noneを好む理由はありません。)

92
AFoglia