kがk.shape = (s1, s2, s3, ..., sn)
のような任意の形状の数値配列であり、k.shape
が(s1, s2, ..., sn, 1)
になるように再構成したい場合は、これを1行で行うのが最善の方法ですか?これは、1行のコードでnumpy配列に余分な次元を追加する最善の方法ですか?
k.reshape(*(list(k.shape) + [1])
kがk.shape = (s1, s2, s3, ..., sn)
のような任意の形状の数値配列であり、k.shape
が(s1, s2, ..., sn, 1)
になるように再構成したい場合は、これを1行で行うのが最善の方法ですか?これは、1行のコードでnumpy配列に余分な次元を追加する最善の方法ですか?
k.reshape(*(list(k.shape) + [1])
それはこのように簡単です:
k.reshape(k.shape + (1,))
しかし、あなたが望むすべてが終わり、空の次元を追加する場合、あなたはnumpy.newaxis
を使用する必要があります。
import numpy as np
k = k[..., np.newaxis]
または
k = k[..., None]
python3.5から、あなたはnp.reshape
内部np.ndarray.shape
で開梱使用することができます。
>>> my_array = np.array([1,2,3,4])
>>> my_array.reshape(1, *my_array.shape)
array([[1, 2, 3, 4]])
>>> my_array.reshape(*my_array.shape, 1)
array([[1],
[2],
[3],
[4]])
my_array.reshape(1, *my_array.shape)
だけでなく、古いバージョンで動作します。