我有一個空列表陣列宣佈,因爲這樣的:如何強制NumPy追加列表作爲對象?
r = np.array([])
而且我有一個在每個循環增加值的數組r
的操作。假設第一個循環添加[1,2,3]
,下一個添加[4,5,6,7]
。我如何追加到數組r
,同時強制將參數append
添加爲對象而不是元素方式?
含義,我想這一點,完成後:
r = np.array([[1, 2, 3], [4, 5, 6, 7]])
,我相信它會被要求dtype = object
。或者至少這是我想我想要的。
如果我使用
r = np.append(r, [1,2,3])
r = np.append(r, [4,5,6,7])
我得到
r = np.array([1., 2., 3., 4., 5., 6., 7.])
唯一的問題是,我需要在一個特定的方式在以後使用此。我需要能夠單獨訪問子列表並對它們進行操作,但是我以後也需要能夠訪問整個數組。通常我會做np.ravel
來得到這個,但是當子數組的長度不一致(他們不會)時,我不能這麼做。
「我有一個空的列表中聲明,因爲這樣的:'R = np.array([])'」 - 這是一個數組。它在那裏說「陣列」。瞭解列表和數組之間的差異非常重要,因爲它們的設計完全不同,使用錯誤的可能會破壞您的性能或導致像現在這樣的錯誤。 – user2357112
@ user2357112對不起,我的意思是數組。顯然,我並沒有將列表和數組混淆,因爲使用普通的python列表這個任務非常簡單。 – Anonymous
你*應該使用一個普通的Python列表。通過這種方式做事,你沒有獲得NumPy的所有優點和缺點。對數組追加數據的速度非常慢,特別是如果你一遍又一遍地做。 – user2357112