С помощью простого, не слишком большого CSV, созданного с помощью:
In [898]: arr = np.ones((1000,100))
In [899]: np.savetxt('float.csv',arr)
версия в текстовом формате:
In [900]: timeit data = np.loadtxt('float.csv')
112 ms ± 119 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
fromfile
может загружать текст, хотя он не сохраняет никакой информации о форме (без очевидного преимущества в скорости)
In [901]: timeit data = np.fromfile('float.csv', dtype=float, sep=' ').reshape(-1,100)
129 ms ± 1.27 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
самая краткая версия «руководства», которую я могу придумать:
In [902]: %%timeit
...: with open('float.csv') as f:
...: data = np.array([line.strip().split() for line in f],float)
52.9 ms ± 589 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
Это 2-кратное улучшение по сравнению с loadtxt
кажется типичным для вариаций этого.
pd.read_csv
примерно в то же время.
genfromtxt
немного быстрее, чем loadtxt
:
In [907]: timeit data = np.genfromtxt('float.csv')
98.2 ms ± 4.7 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)