1 Востаннє редагувалося top89 (28.09.2017 22: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, 222 downloads since 2017-09-28 

2

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

float_data = []
for element in data:
   float_data.append(float(element))
[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

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 написав:

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

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

First, solve the problem. Then, write the code. (c)JJ

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

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

Я теж новачок, але спробуйте ось що:

float_data = test.astype(np.float)

7

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

float_data = []
for element in data:
   float_data.append(float(element.replace(',','.')))
[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

8 Востаннє редагувалося ping (28.09.2017 23: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]]
First, solve the problem. Then, write the code. (c)JJ
Подякували: top891

9

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

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

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

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: koala, ostap34PHP2

10

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

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

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»