2016-08-31 4 views
2

私は基本的にこのように、空の6-テンソルを初期化したい:空のNumpy配列を所定の次元数で初期化するにはどうすればよいですか?

a = np.array([[[[[[]]]]]]) 

は、明示的に括弧を書くより良い方法はありますか?

+0

また、私はそれが 'np.concatenate'を用いたボトムアップから、このようなテンソルを構築するための良い方法であるかどうか全くわかりません。 –

+0

空の配列で何をするつもりですか? –

+0

'np.concatenate(a、b、axis = 0)'を使ってその階数-1の行を反復的に追加します。 –

答えて

3

emptyまたはzerosを使用できます。

はたとえば、ゼロで満たさ2×3の新しい配列を作成するために使用します。numpy.zeros(shape=(2,3))

1

は、あなたが直接ndarrayコンストラクタ使用することができます

numpy.ndarray(shape=(1,) * 6) 

またはemptyバリアントを、それが思わため、より人気がある:

numpy.empty(shape=(1,) * 6) 
1

を反復番目の行を追加しますnp.concatenate(a、b、軸= 0)を使用してランク1にある

Do not。配列を繰り返し作成するのは、各ステップで新しい配列を作成する必要があるため、遅いです。プラスabは、連結1以外のすべての次元で一致しなければなりません。

np.concatenate((np.array([[[]]]),np.array([1,2,3])), axis=0) 

は寸法誤差を与えます。あなたは、このような配列に連結することができます

唯一のものは、それまでと、appendを、繰り返し作業空のリストを開始するには0 dimenions

In [348]: np.concatenate((np.array([[]]),np.array([[]])),axis=0) 
Out[348]: array([], shape=(2, 0), dtype=float64) 
In [349]: np.concatenate((np.array([[]]),np.array([[1,2]])),axis=0) 
------ 
ValueError: all the input array dimensions except for the concatenation axis must match exactly 
In [354]: np.array([[]]) 
Out[354]: array([], shape=(1, 0), dtype=float64) 
In [355]: np.concatenate((np.zeros((1,0)),np.zeros((3,0))),axis=0) 
Out[355]: array([], shape=(4, 0), dtype=float64) 

サイズの配列です。最後に配列を作成します。

a = np.zeros((1,1,1,1,1,0))は、最後の軸で別のnp.ones((1,1,1,1,1,n))配列と連結することができます。

In [363]: np.concatenate((a,np.array([[[[[[1,2,3]]]]]])),axis=-1) 
Out[363]: array([[[[[[ 1., 2., 3.]]]]]]) 
2

np.empty(shape = [1] * (dimensions - 1) + [0])のようにすることができます。 例:

>>> a = np.array([[[[[[]]]]]]) 
>>> b = np.empty(shape = [1] * 5 + [0]) 
>>> a.shape == b.shape 
True 
関連する問題