Интересно, каков наилучший способ нормализации/стандартизации 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())
Есть ли более элегантный способ сделать это? Есть ли где-нибудь какой-нибудь метод, такой как «нормализовать» или «стандартизировать»?