2017-05-14 19 views
0

私はcからpythonに移行しています。多次元配列をPythonで初期化する

Iは、異なる長さの配列を初期化する:map((2,3,(5,6,7)))

Iは、配列np.zeros((2,3))の各エントリは、異なる長さを持つリストになりたいです。

私は、cへのpythonと同等の希望:

for(ii=0; ii<N; ii++) { 
    dim[ii] = ii**2; 
    for(jj=0; jj<Z; jj++) { 
     map[jj][ii] = (long*) calloc(dim[ii], sizeof(long)); 
    } 
} 

、私はいくつかのことを試してみたが、どれも私は必要なものではありません。後でデータに簡単にアクセスでき、管理していないリストを使用したいと思います。

ありがとうございます!

+0

'np.zeros'は定義されたサイズを必要とするので、(私が知る限りは)可変長で使用することはできません。異なる長さのリストを作成できますか?これは何か計算上重く使用されていますか? – OptimusCrime

+0

[おそらく関連性があります](http://stackoverflow.com/questions/9229897/how-can-i-store-a-list-within-a-numpy-2d-array)。 – sascha

+0

私はCの男ではありません。 'n = 2、z = 3'あるいはランダムな' n'と 'z'の中に、目的の出力配列の概要を追加できますか? –

答えて

0

私はそれを行うために管理している:

>>> x=[[0]*3 for count in range(2)] 
>>> for ii in range(2): 
...  for jj in range(3): 
...   x[ii][jj]=[0]*(jj+1)**2 
... 
>>> x 
[[[0], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]], [[0], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0]]] 

私はより良い方法があると確信しているものの、ありがとうございます!

関連する問題