更快创建小numpy数组

时间:2019-03-15 20:13:20

标签: python arrays numpy

我有一个代码,需要在少量输入上执行一些操作,然后将结果返回到numpy数组中。问题是实际创建numpy数组所需的时间比操作本身要长得多。我的问题是,是否有可能以某种方式加快新数组的创建。

作为示例,请考虑以下内容:

def return_list(x1, x2, x3):
     return [x1**2, x2**2, x3**2]

def return_array(x1, x2, x3):
    return np.array([x1**2, x2**2, x3**2]) 

分析代码:

%prun for i in range(1000000): z = return_list(2, 3, 4)
%prun for i in range(1000000): z = return_array(2, 3, 4)

第一个在0.32秒内执行,第二个在1.23秒内执行。这告诉我,大部分时间都是列表到numpy数组的转换。有没有办法加快这个过程?我的返回数组总是很小,为1x3,但是我需要返回一个数组,而不是列表。

0 个答案:

没有答案