またはndarray.reshape
のnumpy.newaxis
どちらも、配列に新しい次元を追加するために使用できます。 どちらもビューを作成するようですが、一方ではなく他方を使用する理由や利点はありますか?
>>> b
array([ 1., 1., 1., 1.])
>>> c = b.reshape((1,4))
>>> c *= 2
>>> c
array([[ 2., 2., 2., 2.]])
>>> c.shape
(1, 4)
>>> b
array([ 2., 2., 2., 2.])
>>> d = b[np.newaxis,...]
>>> d
array([[ 2., 2., 2., 2.]])
>>> d.shape
(1, 4)
>>> d *= 2
>>> b
array([ 4., 4., 4., 4.])
>>> c
array([[ 4., 4., 4., 4.]])
>>> d
array([[ 4., 4., 4., 4.]])
>>>
`
ベストアンサー1
numpy.newaxis
over を使用する理由の 1 つndarray.reshape
は、操作する「不明な」次元が複数ある場合です。たとえば、次の配列の場合:
>>> arr.shape
(10, 5)
これは機能します:
>>> arr[:, np.newaxis, :].shape
(10, 1, 5)
しかし、これは当てはまりません:
>>> arr.reshape(-1, 1, -1)
...
ValueError: can only specify one unknown dimension