[英]Python: Elegant way to iterate over list to fill numpy array
我正在尋找一種更優雅的方式來執行以下操作:
filled_list = [1, 3, 54, 2, 8]
new_list = []
for k in filled_list:
new_k = # do some stuff
new_list.append(new_k)
converted_array = np.array(new_list)
編輯:一些東西的例子
# previously filled: dict1, dict2, dict3, common_keys_of_all_dicts
list1 = []
list2 = []
list3 = []
for k in common_keys_of_all_dicts:
list1.append(dict1[k].item1)
list2.append(dict2[k].item2)
list3.append(dict3[k].item3)
array1 = np.array(list1)
...
如果沒有對某些東西的明確定義,我會選擇:
def somestuff(k):
return k * 42
converted_array = np.array([somestuff(k) for k in filled_list])
不要將您的起始列表用作列表類型。 直接將filled_list
創建為一個numpy 數組,並直接在該數組上執行所有操作。 通常所有類型的數學內容都可以直接在數組上完成。 numpy 直接促進了更復雜的東西。 如果真的有必要,您可以迭代 numpy 數組。
例如:
filled_list = np.array([1, 2, 3, 4, 5])
result = filled_list * filled_list + 1 #vectorized manipulation
for x in np.nditer(filled_list): #iteration over array
x = #do stuff here
我剛剛看到作者添加了一個不適用於初始 numpy-array 的示例。 所以這個答案可能已經過時了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.