0

これまでのところ、私が犯してきたすべての「間違い」は、私が見逃している小さなことでした。うまくいけば、これがここに当てはまります。NUMPYアレイは、主にアレイのサイズ変更機能に使用することにしました。インポートには時間がかかることに気づきましたが、基本的には必要なことを実行しているため、物乞いは選択者にはなれません。とにかく、配列からアイテムを「削除」し、「挿入」を介してそれらを新しいデータに置き換えようとしている間、私はまだすべてゼロを含む配列を持っています。だから、私は途方に暮れています。[archstartred]、[archstartgrn]、および[archstartblu]の値は、生成時に出力するため、正しいことがわかっています。値が配列に入力されないのはなぜですか?これが私のコードです:

#Frame Creation

from numpy import *
frames=array([0 for i in range (0,workingframes*archnodes*3)])
frames.resize(archnodes*3, workingframes)


#Frame Population

for f in range (0, workingframes):

    if f<=(workingframes/2):

        for x in range (0, archnodes):
            delete(frames,[x+f])
            insert(frames,[x+f],(archstartred[x]))
            print archstartred[x]
            delete(frames,[x+f+workingframes])
            insert(frames,[x+f+workingframes],(archstartgrn[x]))
            print archstartgrn[x]
            delete(frames,[x+f+workingframes*2])
            insert(frames,[x+f+workingframes*2],(archstartblu[x]))
            print archstartblu[x]

        print frames
        raw_input('Press control c')  #stop/troubleshoot program


        for y in range (0, nodesperframe):
            archstartred.pop()
            archstartgrn.pop()
            archstartblu.pop()
            archstartred.insert(0, backred)
            archstartgrn.insert(0, backgrn)
            archstartblu.insert(0, backblu)

        archstartred = [int(value) for value in archstartred]
        archstartgrn = [int(value) for value in archstartgrn]
        archstartblu = [int(value) for value in archstartblu]

    else:
        for y in range (0, nodesperframe):
            archstartred.pop(0)
            archstartgrn.pop(0)
            archstartblu.pop(0)
            archstartred.append(backred)
            archstartgrn.append(backgrn)
            archstartblu.append(backblu)

        archstartred = [int(value) for value in archstartred]
        archstartgrn = [int(value) for value in archstartgrn]
        archstartblu = [int(value) for value in archstartblu]

        for x in range (0, archnodes):
            delete(frames,[x+f])
            insert(frames,[x+f],(archstartred[x]))
            delete(frames,[x+f+workingframes])
            insert(frames,[x+f+workingframes],(archstartgrn[x]))
            delete(frames,[x+f+workingframes*2])
            insert(frames,[x+f+workingframes*2],(archstartblu[x]))
4

1 に答える 1

2

numpyは機能し、インプレースで発生するのではなく、コピーinsertを返します。結果を破棄するのではなく、deleteに割り当てます。frames

于 2012-07-26T21:23:31.463 に答える