LoginSignup
1
2

More than 5 years have passed since last update.

Numpy > np.concatenate()と自前のarray結合の処理時間比較 > np.concatenate()が3割ほど速い

Posted at
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04 LTS desktop amd64
TensorFlow v1.2.1
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)

背景

@redshoga さんのコメントにおいてnp.concatenate()を紹介いただいた。
https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html

Numpyで以前ひっかかったのは、np.append()が遅く、Pythonでの結合にした上でnp.array()にするという処置をしたことがあった。
TensorFlow > TFRecords > Queue and Threadsでの読込み > 読込みを進めるに連れ、読込み時間が増加する > 犯人はnp.append()

np.concatenate()は遅いかどうかをJupyterの%%timeitで計測した。
Jupyter Notebook > %timeit range(100) > 処理時間の計測 > %%timeit > 複数文の処理時間の計測

比較

qiita.png

np.concatenate()の方が3割ほど速い。

ソースの可読性も良くなると思われるため、np.concatenate()を使わせていただきます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2