2012-03-11 5 views
0

に新しい値を割り当てる.. ---私はndarrayの値を変更したい:numpyの、私はnumpyの、問題のブロック私に新たなんだ、既存のndarray

ここではデバッグ情報です。

(Pdb) Nodes[0,0]['f'] = np.array([i/9.0 for i in range(9)]) 
(Pdb) print Nodes[0,0]['f'] 
[ 0.00000000e+00 0.00000000e+00 5.67382835e+10 4.58280650e-41 
    1.00030523e-36 0.00000000e+00 1.00030523e-36 0.00000000e+00 
    2.28153811e-40] 
(Pdb) 

Node[0,0]['f']の値が変更されないのはなぜですか?

+5

必要な情報:あなたが投稿した内容は、ノード[0,0] ['f']の値が変更されていないことを示していません。ノード[0,0]とノード[0,0] ['f']の値とタイプは何ですか?カット&ペーストできる問題を示す[短い例](http://sscce.org)を作れますか? – DSM

答えて

1

ではなくNodes['f'][0,0] = numpy.array([i/9.0 for i in range(9)])を使用してみてください:

import numpy 
Nodes = numpy.ndarray(shape=(1,1), dtype=[('f', (float, 9))]) 
print Nodes[0,0]['f'] 
# [ 0.00000000e+000 2.10042365e-316 2.44222340e-316 6.90749588e-310 
# 2.10041417e-316 4.22653002e-317 2.76341350e-316 6.90749588e-310 
# 3.95252517e-322] 
Nodes[0,0]['f'] = numpy.array([i/9.0 for i in range(9)]) 
print Nodes[0,0]['f'] 
# [ 0.00000000e+000 2.10042365e-316 2.44222340e-316 6.90749588e-310 
# 2.10041417e-316 4.22653002e-317 2.76341350e-316 6.90749588e-310 
# 3.95252517e-322] 
Nodes['f'][0,0] = numpy.array([i/9.0 for i in range(9)]) 
print Nodes[0,0]['f'] 
# [ 0.   0.11111111 0.22222222 0.33333333 0.44444444 0.55555556 
# 0.66666667 0.77777778 0.88888889] 

違いがありますなぜ私はわからないんだけど、それはおそらくthis questionに関連しています。

関連する問題