Alex はメモリ効率について、Roberto は利便性について言及しましたが、どちらも良い点です。さらにいくつかのアイデアとして、速度と機能性について言及します。
機能性: NumPy、FFT、畳み込み、高速検索、基本統計、線形代数、ヒストグラムなど、多くの機能が組み込まれています。
速度: これは、リストと NumPy 配列の合計を実行するテストで、NumPy 配列の合計が 10 倍高速であることを示しています (このテストでは、走行距離は異なる場合があります)。
from numpy import arange
from timeit import Timer
Nelements = 10000
Ntimeits = 10000
x = arange(Nelements)
y = range(Nelements)
t_numpy = Timer("x.sum()", "from __main__ import x")
t_list = Timer("sum(y)", "from __main__ import y")
print("numpy: %.3e" % (t_numpy.timeit(Ntimeits)/Ntimeits,))
print("list: %.3e" % (t_list.timeit(Ntimeits)/Ntimeits,))
私のシステムでは(バックアップを実行している間)、次のようになります。
numpy: 3.004e-05
list: 5.363e-04