Вместо mlab.csv2rec
вы можете использовать эквивалентную функцию numpy, numpy.loadtxt
( документация ), для чтения ваших данных. Эта функция имеет аргумент для указания dtype ваших данных.
Или, если вы хотите работать с именами столбцов (как в примере кода), используйте функцию numpy.genfromtxt
( документация ). Это похоже на loadtxt, но с дополнительными опциями, такими как чтение имен столбцов из первой строки вашего файла (с names = True
).
Пример его использования:
In [9]:
import numpy as np
from StringIO import StringIO
data = StringIO("a, b, c\n 1, 2, 3\n 4, 5, 6")
np.genfromtxt(data, names=True, dtype = 'int64', delimiter = ',')
Out[9]:
array([(1L, 2L, 3L), (4L, 5L, 6L)],
dtype=[('a', '<i8'), ('b', '<i8'), ('c', '<i8')])
Еще одно замечание к вашему коду: при использовании массивов numpy вам не нужно использовать циклы for. Чтобы вычислить площадь, вы можете просто сделать:
xSQ = x**2
sumxSQ = xSQ.sum()
или в одну строку:
sumxSQ = numpy.sum(x**2)