empty

numpy data arrayを初期化せずに生成する。生成にかかるコストがzerosよりも圧倒的に低いので、配列を確保するだけならこれを使う。np.nanをかけて全部nanの配列を作る場合でも、emptyを使う方がzerosを使うよりも速い。

参考、

empty elapsed time= 0.0063779354095458984

zeros elapsed time= 3.6120433807373047

が以下の結果。

import numpy as np

import time

tsz=365*30

zsz=40

ysz=90

xsz=180

t1=time.time()

for t in range(tsz):

x=np.empty([zsz,ysz,xsz])

t2=time.time()

print('empty elapsed time=',t2-t1)

t1=time.time()

for t in range(tsz):

x=np.zeros([zsz,ysz,xsz])

t2=time.time()

print('zeros elapsed time=',t2-t1)