2017-11-27 18 views
1

numpy配列の先頭に新しい要素を追加し、この配列の最後の要素を削除する最良の方法は何ですか?配列の先頭に要素を追加して最後に削除numpy

私はこのようなコードを使用:

tmp = np.array([1,2,3]) 
print(tmp) 
tmp = np.insert(tmp,0,0) 
tmp = np.delete(tmp,-1) 
print(tmp) 

だから私は、私が望んだ:

[1 2 3] 
[0 1 2] 

しかし、私はこれを行うには良い方法があると思われます。

+2

一度やってしまうと悪いですが、アルゴリズム全体の中でより良いやり方があるように思えます。 – user2357112

+1

効率(perf、メモリ)に関して、私は 'np.concatenate(([0]、tmp [: - 1]))'と考えています。 – Divakar

+0

以下の回答があなたの質問に答えた場合は、それを受け入れて質問を閉じることができます –

答えて

4

きれいな方法は、あなたがやっていることを行うには:

tmp = np.insert(tmp[0:-1], 0, 0) 

または

tmp = np.append([0], tmp[0:-1]) 

または

tmp = np.concatenate(([0], tmp[0:-1])) 

あなたは、配列内の特定の位置に挿入したい場合.insertはきれいなアプローチですが、0番目の位置(または最後)に要素を追加する必要がある場合連結がより効率的になる可能性があります。そうではありません

シンプルはtimeitチェックは、CONCATENATE用ループごとに追記し、挿入のためのループあたり12.7μsの間のループあたり5.47 µs2.07 µsを明らかに(これは時間を測定するのに最適な方法ではありませんが、それは概算を与える)

+0

お返事ありがとうございます! – PhilNox

関連する問題