我有一個大小不同的列表,我想將它複製到numpy數組中。我已經有辦法做,但我想看看是否有更優雅的方式。將列表複製到numpy數組的一部分
比方說,我有以下幾點:
import numpy as np
data = np.full((10,), np.nan)
# I want to copy my list into data starting at index 2
def apply_list(my_list):
data[2:2+len(mylist)] = mylist
# Example
tmp = [1, 2, 3, 4] # can vary from 2 to 8 elements
apply_list(tmp)
在此之後,我預計的數據是這樣的:
[nan, nan, 1, 2, 3, 4, nan, nan, nan, nan]
請記住,len(mylist)
範圍從2至8
我正在使用NaN標記未使用的位置,並且數據已被預分配,並且始終應爲size = 10,而不管my_list的大小。出於這個原因,簡單的追加將無法工作。
我特別不喜歡做多2:2+len(mylist)
。有沒有更好的/更清潔的方式來做到這一點?
這是完成這項工作最簡單的方法。 – hpaulj
是否有某種方式將此與某個迭代器/生成器結合? (顯然不需要用普通的python進行迭代)。我知道np.fromiter,但不知道如何將它連接到作業 – purpletentacle
你在尋找速度還是漂亮的代碼? – hpaulj