如何快速向NumPy数组批量赋值?大维度数组构建优化问询
如何更快构建高维度(m×n×p)的numpy数组?
我在处理一个机器学习问题,需要构建一个维度为m x n x p的数组。具体来说,m代表位置数量,n是时间窗口数,每个时间窗口的观测值对应p个特征。
我的数据存储每次只能返回单个位置的数据,也就是尺寸为1 x n x p的数组,但预测环节需要把所有数据整合成一个m x n x p的单个数组。当p值相对较小时,常规赋值方法的速度足够快;但当p值很大时,这类操作会明显变慢。
示例代码如下:
In [44]: A = np.arange(4800000000, dtype=np.float32).reshape(20,30,8000000) In [45]: x = np.random.randn(30, 8000000) In [46]: %timeit A[0,:] = x 39.5 ms ± 2.37 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
单次赋值40毫秒看似不多,但当m为100时,仅这一项简单操作就需要4秒。有没有更快的数组构建方式?
内容的提问来源于stack exchange,提问作者josephkibe
相关产品推荐
相关产品推荐

