2

私はこれについてしばらく考えていましたが、ここで何が起こっているのか理解できません..うまくいけば、それは簡単なことですか?以下の出力では、'c' の 2 番目のエントリの最初の要素に '41' が含まれているはずです。

>>> a = np.zeros(shape = (2,2))
>>> b = np.zeros(shape = (2,2))
>>> c = [np.array(x) for x in range(3)]
>>> c[1] = np.zeros(shape=(2,2,3))
>>> c[1][:,:,0] = a.view()
>>> a
array([[ 0.,  0.],
       [ 0.,  0.]])
>>> c
[array(0), array([[[ 0.,  0.,  0.],
                   [ 0.,  0.,  0.]],

                  [[ 0.,  0.,  0.],
                   [ 0.,  0.,  0.]]]), array(2)]
>>> a[0,0] = 41
>>> a
array([[ 41.,   0.],
       [  0.,   0.]])
>>> c
[array(0), array([[[ 0.,  0.,  0.],
                   [ 0.,  0.,  0.]],

                  [[ 0.,  0.,  0.],
                   [ 0.,  0.,  0.]]]), array(2)]
4

1 に答える 1

3

あなたがしたので:

c[1][:,:] = a.view()

これは浅いコピーを作成します。

代わりにそうc[1] = a.view()すると、期待した動作が表示されます。

于 2013-02-01T00:10:27.200 に答える