Нормализация/стандартизация повторного переноса numpy

Интересно, каков наилучший способ нормализации/стандартизации numpy recarray. Чтобы было понятно, я говорю не о математической матрице, а о массиве записей, который также имеет, например, текстовые столбцы (например, метки).

a = np.genfromtxt("iris.csv", delimiter=",", dtype=None)
print a.shape
> (150,)

Как видите, я не могу, например, обрабатывать a[:,:-1], так как форма одномерная.

Лучшее, что я нашел, это перебирать все столбцы:

for nam in a.dtype.names[:-1]:
    col = a[nam]
    a[nam] = (col - col.min()) / (col.max() - col.min())

Есть ли более элегантный способ сделать это? Есть ли где-нибудь какой-нибудь метод, такой как «нормализовать» или «стандартизировать»?

7
задан jamylak 26 April 2012 в 13:01
поделиться