この結果を得るために何かひどく間違ったことをしたのではないかと思っていたので、この質問を投稿しました。
中サイズのcsvファイルがあり、numpyを使用してロードしようとしました。説明のために、python を使用してファイルを作成しました。
import timeit
import numpy as np
my_data = np.random.rand(1500000, 3)*10
np.savetxt('./test.csv', my_data, delimiter=',', fmt='%.2f')
そして、numpy.genfromtxt、numpy.loadtxt の 2 つの方法を試しました。
setup_stmt = 'import numpy as np'
stmt1 = """\
my_data = np.genfromtxt('./test.csv', delimiter=',')
"""
stmt2 = """\
my_data = np.loadtxt('./test.csv', delimiter=',')
"""
t1 = timeit.timeit(stmt=stmt1, setup=setup_stmt, number=3)
t2 = timeit.timeit(stmt=stmt2, setup=setup_stmt, number=3)
そして、結果はt1 = 32.159652940464184, t2 = 52.00093725634724 であることを示しています。
ただし、matlab を使用しようとすると、次のようになります。
tic
for i = 1:3
my_data = dlmread('./test.csv');
end
toc
結果は次のとおりです。経過時間は3.196465 秒です。
読み込み速度に多少の違いがあることは承知していますが、
- これは私の予想をはるかに超えています。
- np.loadtxt は np.genfromtxt よりも高速である必要がありますか?
- csvファイルのロードは私が頻繁に行うことであり、csvモジュールを使用するとコーディングが少し冗長になるため、まだpython csvモジュールを試していません...しかし、それが唯一の方法である場合は喜んで試してみたいと思います. 現在、私は何か間違ったことをしているのではないかと心配しています。
任意の入力をいただければ幸いです。よろしくお願いします!