我目前正在尋找一種簡單的方法來將逗號分隔值示例"[2323,1231.1,123123.2 ,21 ... ,2131]"
的字符串轉換爲值列表或值的numpy.array。我希望它儘可能高效,有沒有一個python命令可以做我想要的?將值的字符串存儲到值列表中?
0
A
回答
3
是,ast.literal_eval
可以做到這一點:
>>> import ast
>>> ast.literal_eval("[2323,1231.1,123123.2 ,21 ,2131]")
[2323, 1231.1, 123123.2, 21, 2131]
0
是@wim的ast
建議可能是最好的選擇;但也有一些備選方案:
In [2036]: txt="[2323,1231.1,123123.2 ,21 ,2131]"
AST
In [2038]: ast.literal_eval(txt)
Out[2038]: [2323, 1231.1, 123123.2, 21, 2131]
JSON
In [2039]: import json
In [2040]: json.loads(txt)
Out[2040]: [2323, 1231.1, 123123.2, 21, 2131]
直接
In [2045]: [float(i) for i in txt[1:-1].split(',')]
Out[2045]: [2323.0, 1231.1, 123123.2, 21.0, 2131.0]
時間:
In [2043]: timeit ast.literal_eval(txt)
10000 loops, best of 3: 37.7 µs per loop
In [2044]: timeit json.loads(txt)
100000 loops, best of 3: 9.57 µs per loop
In [2046]: timeit [float(i) for i in txt[1:-1].split(',')]
100000 loops, best of 3: 5.02 µs per loop
不同文字的相對時間可能不同;處理偏離嚴格列表顯示的能力可能會有所不同。
爲了方便和模仿MATLAB np.matrix
也可以解析一個字符串;但結果是2D慢
In [2047]: np.matrix(txt)
Out[2047]:
matrix([[ 2.32300000e+03, 1.23110000e+03, 1.23123200e+05,
2.10000000e+01, 2.13100000e+03]])
In [2048]: timeit np.matrix(txt)
10000 loops, best of 3: 184 µs per loop
np.array
也可以處理字符串列表:
In [2050]: np.array(txt[1:-1].split(','),float)
Out[2050]:
array([ 2.32300000e+03, 1.23110000e+03, 1.23123200e+05,
2.10000000e+01, 2.13100000e+03])
In [2051]: timeit np.array(txt[1:-1].split(','),float)
...
100000 loops, best of 3: 9.03 µs per loop
1
string_list = '[2323, 2324,2325,2326]'
list_numbers = json.loads(string_list)
就這麼簡單!
相關問題
- 1. 將列表值存儲在c中的字符串中#
- 2. Python - 如何用另一個列表中的字符串值替換列表中存儲的字符串值?
- 3. 如何將IQueryable列表中的值存儲到字符串變量?
- 4. 將gridview中的值存儲到asp.net中的字符串
- 5. 未能將值存儲到列表中
- 6. 字符串和布爾值表存儲
- 7. 數組列表值到字符串值
- 8. 將字符串值存儲到循環中的數組
- 9. 將字節值存儲在字符串中?將字節轉換爲字符串?
- 10. 將數據集中每一行的列值存儲到字符串中[]
- 11. 將值存儲到字符串數組中
- 12. 將字符串值存儲到對象中並稍後使用
- 13. 將scanf值存儲到2d字符串數組中
- 14. 將字符串保存到列表中
- 15. SQLite - 將表名的列名存儲在字符串列表中
- 16. 將MongoDb中的Guids列表存儲爲字符串列表
- 17. Powershell將列值存入字符串
- 18. Python - 將值存儲在單個字符串的多個列表中
- 19. 存儲字符串值在Java中
- 20. C++,如何將字符串,整型值和浮點值存儲到數組中並取回存儲的值
- 21. 如何將值插入存儲的字符串常量值
- 22. 如何將存儲在字符串中的數字值相加?
- 23. 如何將變量的值存儲到字符串數組?
- 24. 將列表中的值插入到字符串中python
- 25. 從Python中將字符串列表存儲到HDF5數據集
- 26. 如何將字符串列表存儲到節點中?
- 27. 將字符串存儲到散列表中
- 28. 如何將字符串值存儲在持久存儲黑莓
- 29. Python:將列表中的字符串值更改爲ascii值
- 30. 如何存儲在字符串數組數組列表值