Не удалось преобразовать String в плавающее в numy ndarray - PullRequest
0 голосов
/ 20 апреля 2019

Я читаю из файла csv fer 2013, содержащего три столбца эмоции, значение пикселя и использование. говорят, что значение пикселя задано в строковом формате, и я хочу изменить масштаб моих значений пикселей от 0-255 до 0-1, поэтому мне нужно преобразовать его в int / float, и тогда только я смогу выполнить любую математическую операцию. операции над ними.

Сначала я попытался прочитать файл csv, используя функцию pandas read_csv, а затем, используя iloc, прочитал значение пикселя в переменной с именем x_tr. Затем при печати его значения он показывает свой тип d в виде object.confused для этого тоже. X_tr - это numpy ndarray, тогда как мне преобразовать его в целое значение. Я попытался x_tr.astype (np.float), но он отказался от ошибки, как указано в коде.

x_tr = train.iloc[:,1].values
x_tr

The screenshot of what x_tr contains

что я пытался преобразовать в плавающее

x_tr = train.iloc[:,1].values
x_tr = x_tr.astype(np.float) 

и что я получил как ошибку

enter image description here

Пожалуйста, помогите.

1 Ответ

1 голос
/ 20 апреля 2019

Не конвертируйте pixel в массив, вместо этого рассматривайте его как простую строку. Затем используйте метод numpy.fromstring(). Вот пример для справки.

>>> s = '1 2 3 4'
>>> f = np.fromstring(s, dtype=float, sep=' ')
>>> f
array([1., 2., 3., 4.])
...