Usa*_*agi 2 python csv arrays performance numpy
我有一个大的CSV数据文件 - 大约1,444,000行数据 - 我正在读取并转换为numpy数组.我读了22列中的三列.这就是我目前正在做的事情:
import numpy as np
import csv
fid = open('data.csv', 'r')
csvfile = csv.reader(fid, dialect='excel', delimiter=',')
csvfile.next() # to skip header
t = []
u = []
w = []
for line in csvfile:
t += [line[1]] # time
u += [line[-4]] # velocity x
w += [line[-2]] # velocity z
t = np.array(t, dtype='float')
u = np.array(u, dtype='float')
w = np.array(w, dtype='float')
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:这有效吗?我本来打算将新数据附加到循环中的现有numpy数组,直到我读到整个数组必须每次都在内存中移动.
我会建议numpy.loadtxt().我没有将它用于csv,但你可以将分隔符设置为','并只检索你需要的列作为numpy ndarray.
我怀疑以下内容会起作用:
# To load only columns 1 (time), 19 (velocity x), and 21 (velocity z).
numpy.loadtxt('data.csv', delimiter=',', usecols=(1,19,21))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |