10 열 및 100000 행을 가진 간단한 HDF5 파일 (PyTables로 작성)이 있습니다. 모든 값에 대해 열마다 다른 매개 변수를 사용하여 간단한 선형 방정식을 적용하고 CSV에 내용을 써야합니다.전체 열 (pytables, hdf5, numpy)에 대한 효율적인 계산
내 순진 방법은 테이블을 통해 루프이었다
for row in table.iterrows():
print "%f,%f,..." % (row['a'] * 1.0 + 2.0, row['b'] * 3.0 + 4.0, ...)
그러나 나는 열을 선택하고 그들에게 그런 식으로 계산하고 나중에 결과 배열을 반복하는 것이 더 효율적이 될 것인지, 궁금 :
a = numpy.add(numpy.multiply(table.cols.a, 1.0), 2.0)
b = numpy.add(numpy.multiply(table.cols.b, 3.0), 4.0)
그러나 이것은 훨씬 느립니다.
가장 좋은 방법은 무엇입니까?
PyTables 초보자로서이 기능에 대해 들어 본 적이 없기 때문에 많은 감사드립니다. 빠른 검사에서 이것은 약 3 분의 1 (약 400ms)의 iterrows (~ 600ms)를 사용하는 것보다 빠릅니다! 시원한! numpy 방식은 너무 느려서 몇 분 후에 중단되었습니다. –