9

ゼロの多次元配列を作成する必要があります。

2 (D=2) または 3 (D=3) 次元の場合、これは簡単で、次のように使用します。

a = numpy.zeros(shape=(n,n)) 

また

a = numpy.zeros(shape=(n,n,n))

より高い D の場合、長さ n の配列を作成するにはどうすればよいですか?

4

4 に答える 4

17

タプル(n,)に必要な次元数を掛けることができます。例えば:

>>> import numpy as np
>>> N=2
>>> np.zeros((N,)*1)
array([ 0.,  0.])
>>> np.zeros((N,)*2)
array([[ 0.,  0.],
       [ 0.,  0.]])
>>> np.zeros((N,)*3)
array([[[ 0.,  0.],
        [ 0.,  0.]],

       [[ 0.,  0.],
        [ 0.,  0.]]])
于 2013-03-13T18:13:20.397 に答える
4
>>> sh = (10, 10, 10, 10)
>>> z1 = zeros(10000).reshape(*sh)
>>> z1.shape
(10, 10, 10, 10)

編集:上記は間違っていませんが、過剰です。@mgilsonの答えはより良いです。

于 2013-03-13T18:13:16.227 に答える
2
In [4]: import numpy

In [5]: n = 2

In [6]: d = 4

In [7]: a = numpy.zeros(shape=[n]*d)

In [8]: a
Out[8]: 
array([[[[ 0.,  0.],
         [ 0.,  0.]],

        [[ 0.,  0.],
         [ 0.,  0.]]],


       [[[ 0.,  0.],
         [ 0.,  0.]],

        [[ 0.,  0.],
         [ 0.,  0.]]]])
于 2013-03-13T18:14:48.100 に答える