1

常に 3 つのエントリしか含まない配列またはリストを作成したいと考えています。関数はループし、各ループで 1 つのエントリがリストに追加され、最も古い値が押し出され、リスト内の 3 つの値に基づいて値が計算されます。

私が試してみました:

import numpy as np

z = np.ndarray((3,),float)

np.append(z, [12, 14.56, 12.46, 1.56])

これは、3つの値(afaik)のみでnumpy配列を作成しますが、配列には奇妙な値が入力されています:

z= ([  1.56889217e-163,   1.01899555e-297,   1.03395110e-297])

なぜ/何が間違っているのか、または私がやりたいことに対するより良い解決策を知っている人はいますか?

4

2 に答える 2

5

次を使用しdequeます。

from collections import deque
z = deque(maxlen=3)
z.extend([1, 2, 3, 4])
print z
# deque([2, 3, 4], maxlen=3)
z.append(5)
# deque([3, 4, 5], maxlen=3)
print z

appendleft必要に応じて、両端キューを使用することもできextendleftます。

于 2013-05-07T23:49:58.297 に答える