У вас две отдельные проблемы.
Сначала - это то, что вы пытаетесь вызвать метод для объекта, который не поддерживает этот метод.Если вы посмотрите на документы для scipy.sparse.csr.csr_matrix , вы увидите, что у него нет метода 'std'.(Это имеет в виду, максимум, и некоторые другие вещи).Я только что связался с текущей версией Scipy, я не уверен, какую версию вы используете.Почему это не встроено?Я не знаю.Это может быть не универсально применимое приложение к этому объекту, поэтому это не всегда безопасно.Или разработчики еще не добрались до этого, или убрали его и т. Д. Любое количество возможностей, но ваша подсказка была:
AttributeError: std not found
Секунда , основываясь на вашем комментарии вышеесли это нормально, просто взять X_train / mean;это зависит от того, что вы хотите.Если вы берете ряд чисел и делите их на среднее значение, вы в основном рассчитываете процент.Если вы хотите стандартизированные значения (что вы обычно делаете для машинного обучения), то вам действительно нужно стандартное отклонение .Я покажу вам пример использования numpy, которые являются простыми массивами.
>>> import numpy as np
>>> x = [2,3,3,4,4,4,4,5,5]
>>> np.std(x)
0.9162456945817024
>>> np.mean(x)
3.7777777777777777
Вычислить стандартное отклонение просто: я разбил его на квадратичные разности, дисперсию, а затем третье фактическое стандартное отклонение:
>>> ((x-np.mean(x))**2)
array([3.16049383, 0.60493827, 0.60493827, 0.04938272,
0.04938272, 0.04938272, 1.49382716, 1.49382716])
>>> np.sum(((x-np.mean(x))**2))/len(x)
0.8395061728395062
>>> np.sqrt(np.sum(((x-np.mean(x))**2))/9)
0.9162456945817024
Итак,Вы можете использовать это, чтобы сгенерировать то, что вам было нужно:
>>> (x-np.mean(x))/0.916245 #could also use np.std(x)
>>> array([-1.94028647, -0.84887533, -0.84887533, 0.24253581, 0.24253581,
0.24253581, 0.24253581, 1.33394695, 1.33394695])
Сравните это с сгенерированными вами значениями (2 - 57% от 3.77777 и т. д.), которые не совсем совпадают
>>> x/np.mean(x)
array([0.52941176, 0.79411765, 0.79411765, 1.05882353, 1.05882353,
1.05882353, 1.05882353, 1.32352941, 1.32352941])