【发布时间】:2017-03-28 15:37:05
【问题描述】:
这是输入:
input_list=[a,b,c,d]
我希望得到输出
output_list=[np.array([a]),np.array([b]),np.array([c]),np.array([d])]
我知道每个元素上的循环也应该起作用,但我想知道是否有快速的方法来完成这个?提前致谢。
这是我的三种方法的代码,速度没有太大差异,但第 2 和第 3 更整洁。 :
第一种方法:t.append(np.array([i])),cost_time=14.1404731274 seconds
import time
start_time = time.time()
for index, row in modified_test_store_raw_df[modified_test_store_raw_df.Open==1].iterrows():
input_value=(list(modified_test_store_raw_df.loc[index,'tuple_map']))
t=[]
for i in input_value:
t.append(np.array([i]))
print("--- %s seconds ---" % (time.time() - start_time))
第二种方法:t=[np.array([x]) for x in input_value],cost_time=13.7779290676 seconds
import time
start_time = time.time()
for index, row in modified_test_store_raw_df[modified_test_store_raw_df.Open==1].iterrows():
input_value=(list(modified_test_store_raw_df.loc[index,'tuple_map']))
t=[np.array([x]) for x in input_value]
print("--- %s seconds ---" % (time.time() - start_time))
第三种方法:t=np.array(input_value)[:, None],cost_time=13.2799420357 seconds
import time
start_time = time.time()
for index, row in modified_test_store_raw_df[modified_test_store_raw_df.Open==1].iterrows():
input_value=(list(modified_test_store_raw_df.loc[index,'tuple_map']))
t=np.array(input_value)[:, None]
print("--- %s seconds ---" % (time.time() - start_time))
【问题讨论】:
-
每个人都在建议一个列表推导,这当然是一个列表循环。基本上就是这样。只要您的目标是一个快速的列表。
numpy函数将产生某种数组。
标签: python arrays python-2.7 numpy