python创建长度为n的数组_向最终长度未知的NumPy数组动态添加元素

如果我定义:def get_list_of_numbers():

n = np.random.randint(0,10)

return list(range(n))

def foo(K):

x=[]

for i in range(K):

y = get_list_of_numbers()

x.extend(y)

return x

简单地调用get_list_of_numbers花费的时间最多。将结果转换为数组并不需要太多时间:

^{pr2}$

让我们尝试一下预分配方法:def foo1(K):

x = np.zeros(K*10,int)

cnt = 0

for i in range(K):

y = get_list_of_numbers()

n = len(y)

x[cnt:cnt+n] = y

cnt += n

x = x[:cnt]

return x

In [80]: timeit foo1(1000)

100 loops, best of 3: 10.1 ms per loop

数组串联方法In [48]: def foo1(K):

...: x = np.zeros(0,int)

...: for i in range(K):

...: y = get_list_of_numbers()

...: x = np.concatenate((x, y), axis=0)

...: return x

In [51]: timeit foo1(1000).shape

100 loops, best of 3: 15.9 ms per loop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值