Muszę konwertować numpy tablicę float na ciąg znaków (do przechowywania w SQL DB), a następnie przekonwertować ten sam ciąg z powrotem do numpy zmienna tablica.Konwertuj tablicę numpy na ciąg CSV i ciąg znaków CSV z powrotem na tablicę numpy
To jest jak idę do łańcucha()
VIstring = ''.join(['%.5f,' % num for num in VI])
VIstring= VIstring[:-1] #Get rid of the last comma
Więc po pierwsze to działa, czy jest to dobra droga? Czy jest to lepszy sposób na pozbycie się tego ostatniego przecinka? Czy mogę uzyskać dla mnie metodę join
wstawiania przecinków?
Po drugie, co ważniejsze, czy istnieje sprytny sposób na przejście od łańcucha do tablicy typu float?
Oto przykład z tablicy i napis:
VI
array([ 17.95024446, 17.51670904, 17.08894626, 16.66695611,
16.25073861, 15.84029374, 15.4356215 , 15.0367219 ,
14.64359494, 14.25624062, 13.87465893, 13.49884988,
13.12881346, 12.76454968, 12.40605854, 12.00293814,
11.96379322, 11.96272486, 11.96142533, 11.96010489,
11.95881595, 12.26924591, 12.67548634, 13.08158864,
13.4877041 , 13.87701221, 14.40238245, 14.94943786,
15.49364166, 16.03681428, 16.5498035 , 16.78362298,
16.90331119, 17.02299387, 17.12193689, 17.09448654,
17.00066063, 16.9300633 , 16.97229868, 17.2169709 , 17.75368411])
VIstring
'17.95024,17.51671,17.08895,16.66696,16.25074,15.84029,15.43562,15.03672,14.64359,14.25624,13.87466,13.49885,13.12881,12.76455,12.40606,12.00294,11.96379,11.96272,11.96143,11.96010,11.95882,12.26925,12.67549,13.08159,13.48770,13.87701,14.40238,14.94944,15.49364,16.03681,16.54980,16.78362,16.90331,17.02299,17.12194,17.09449,17.00066,16.93006,16.97230,17.21697,17.75368'
Aha i utrata precyzji z %.5f
jest całkowicie w porządku, te wartości są interpolowane przez pierwotnych punktów mieć miejsce jedynie precyzji 4 dziesiętny więc nie muszę tego pokonać. Więc kiedy odzyskania tablicy numpy, jestem szczęśliwy, aby uzyskać jedyne miejsce precyzję 5 dziesiętną (oczywiście ja przypuszczam)
Możesz sprawdzić funkcje numpy savetxt i loadtxt – Matt
@MattAnderson Czy istnieje sposób na ich użycie, aby umieścić tekst prosto w ciągach znaków i wczytać go prosto z łańcuchów w pamięci, zamiast używać plików? – Dan