22

関数 numpy.append の使用に問題があります。私はより大きなコードの一部として次の関数を書きましたが、私のエラーは次のように再現されています:

data = [
         [
          '3.5', '3', '0', '0', '15', '6', 
          '441', 'some text', 'some more complicated data'
         ], 
         [
          '4.5', '5', '1', '10', '165', '0', 
          '1', 'some other text', 'some even more complicated data'
         ]
       ]

def GetNumpyArrey(self, index):
    r = np.array([])
    for line in data:
        np.append(r, float(line[index]))

    print r

インデックス < 6。結果は次のとおりです。

>> []

私は何を間違っていますか?

どうもありがとう !

4

1 に答える 1

39

list メソッドとは異なりappend、numpyappendはインプレースに追加しません。余分な要素が追加された新しい配列を返します。だからあなたはする必要がありますr = np.append(r, float(line[index]))

ただし、この方法でnumpy配列を構築することは非効率的です. リストを Python リストとして作成し、最後に numpy 配列を作成することをお勧めします。

于 2012-11-22T04:59:24.097 に答える