簡體   English   中英

在循環中將數據存儲在 NumPy 數組中

[英]Storing data in NumPy array while loop

在循環中將數據存儲在 NumPy 數組中

我想將 3 個變量(時間、速度、位置)存儲到一個 NumPy 數組中。 每次循環完成時,存儲過程都應該添加一個新值。 循環考慮了時間,速度和位置是這個時間的函數。 但是,我可以使用列表來完成,根據我在教程中看到的內容,Numpy 數組對於大數據更有效,這就是我的情況。 我的問題是如何使用數組來做到這一點。 我在想也許使用 append 可以完成這項工作,但問題是 append 創建一個新的 NumPy 數組,而不是簡單地添加值。 另外據我所知 NumPy 在大小上是不可變的。 因此,每次我添加另一個軸時,都會創建其他可能效率不高的數組。 關於這個問題有什么建議嗎?

duration = 3600
time = 0
data= np.array([s(t)], [x(t)], [t])
while time <= duration:
   function_speed = s(t)
   function_position = x(t)
   data = add values (s, x, t)
   time +=1 

我在想也許創建一個大數組然后相應地替換每個值。 感謝您的任何反饋。

知道您的程序將運行特定的duration ,您可以使用np.empty預先分配必要的空間:

duration = 3600
time = 0
data = np.empty(shape=(duration+2, 3))  # duration + time at 0 + final iteration
data[0] = s(t), x(t), t
while time <= duration:
    ...
    data[time+1] = s(t), x(t), t
    time += 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM