70

これでしばらく頭をかいてしまいました。意図せずにNoneで配列をスライスし、エラー以外の何かを取得していました(エラーを予期していました)。代わりに、追加の次元を持つ配列を返します。

>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
       [2, 3]])
>>> a[None]
array([[[0, 1],
        [2, 3]]])

この動作は意図的なものですか、それとも副作用ですか?意図的な場合、その理由はありますか?

4

1 に答える 1

67

Noneを使用することは、を使用することと同じnumpy.newaxisです。したがって、そうです、それは意図的なものです。実際、それらは同じものですが、もちろん、newaxisそれをよりよく説明します。

ドキュメント

newaxisオブジェクトは、すべてのスライス操作で使用して、長さ1の軸を作成できます。newaxisは「None」のエイリアスであり、これの代わりに「None」を使用しても同じ結果が得られます。

関連するSOの質問

于 2009-09-11T00:29:39.797 に答える