1 Востаннє редагувалося top89 (28.09.2017 21:12:34)

Тема: Перетворення string у float

Доброї години доби, допоможіть з такою проблемою: ЯК змінити елементи у масиві із типу string  в тип float?
Шматок даного коду створює масив з числами типу string а не float. Що я не врахував? Допоможіть будь ласка.
p.s. у Python я новачок, і файл в додачу.

import numpy as np
import pandas as pd
test = pd.read_csv("Test_3.txt", sep="\t", header=None)
data = np.array(test)
print(data)

Post's attachments

Test_3.txt 119.49 kb, 507 downloads since 2017-09-28 

2

Re: Перетворення string у float

float_data = []
for element in data:
   float_data.append(float(element))

3

Re: Перетворення string у float

Для numpy треба використовувати np.vectorize:
make_float = np.vectorize(float)
data = make_float(data)

4

Re: Перетворення string у float

Дякую піпл за поради, але дідько його зна чому воно не працює ;(

5

Re: Перетворення string у float

top89 написав:

Дякую піпл за поради, але дідько його зна чому воно не працює ;(

що саме не працює?
не читає, не присвоює,  не друкує?
воно щось у консоль пише?
чи просто не запускається?

6 Востаннє редагувалося dot (28.09.2017 21:22:41)

Re: Перетворення string у float

Я теж новачок, але спробуйте ось що:
[code=python]float_data = test.astype(np.float)[/code]

7

Re: Перетворення string у float

float_data = []
for element in data:
   float_data.append(float(element.replace(',','.')))

8 Востаннє редагувалося ping (28.09.2017 22:18:38)

Re: Перетворення string у float

import numpy as np
import pandas as pd
test = pd.read_csv("Test_3.txt", sep="\t", header=0, decimal=",")
data = np.array(test)

make_float = np.vectorize(float)
data = make_float(data)
print(data)

результат:

(env3) XYZ@delya:~/Py/tmp$ python codenp.py 
[[ -3.50000000e-06   3.36000000e+00]
 [ -3.49900000e-06   3.36000000e+00]
 [ -3.49800000e-06   3.36000000e+00]
 ..., 
 [  3.49700000e-06   0.00000000e+00]
 [  3.49800000e-06   0.00000000e+00]
 [  3.49900000e-06  -8.00000000e-02]]

поправка :

import numpy as np
import pandas as pd
test = pd.read_csv("Test_3.txt", sep="\t", header=0, decimal=",")
data = np.array(test)
print(data)

не треба переводити у флоат окремою векторизацією.
результат аналогічний:

[[ -3.50000000e-06   3.36000000e+00]
 [ -3.49900000e-06   3.36000000e+00]
 [ -3.49800000e-06   3.36000000e+00]
 ..., 
 [  3.49700000e-06   0.00000000e+00]
 [  3.49800000e-06   0.00000000e+00]
 [  3.49900000e-06  -8.00000000e-02]]
Подякували: top891

9

Re: Перетворення string у float

Український форум програмістів → Python → Статті → Перетворення string у float

Надзвичайно цікава стаття  *BRAVO*

Подякували: koala, ostap34PHP2

10

Re: Перетворення string у float

Знов освітянин не втерпів і нападлючів в розділі статті. Ми вам тут не раді.