python - 在 python 中使用 recfromtxt 读取百分比
问题描述
我有一个如下所示的 .txt 文件:
0 0,0% 41,3% 22,1% 28,9%
1 0,0% 40,4% 27,4% 37,8%
2 0,0% 42,5% 30,1% 48,5%
我设法导入它的唯一方法是这样的:
d1 = np.recfromtxt(path+file, delimiter = '\t', usecols=(0,1,2,3,4), names= ["h","a","b","c","d"], dtype=(None,'U8','U8','U8','U8'))
其中以下
[(0., '0,0%', '41,3%', '22,1%', '28,9%')
(1., '0,0%', '40,4%', '27,4%', '37,8%')
(2., '0,0%', '42,5%', '30,1%', '48,5%')]
为了处理数据,我必须转换我所有的字符串。我确定我误解了一些东西。也就是说,我想得到类似的东西
[(0., 0,0, 41,3, 22,1, 28,9)
(1., 0,0, 40,4, 27,4, 37,8)
(2., 0,0, 42,5, 30,1, 48,5)]
如果有人可以提出一种更简单的方法并解释它是如何工作的,我将不胜感激。
解决方案
一个相当长的解决方法,因为我无法使用该函数读取数据recfromtxt
(如,当我尝试使用示例数据读取时它给了我一个错误):
fin = open("file.txt")
data = fin.readlines()
fin.close()
d = [i.strip().replace(",", ".").replace("%", "") for i in data]
d = [i.split() for i in d]
d = np.array(d)
d = d.astype('float64')
输出如下:
array([[ 0. , 0. , 41.3, 22.1, 28.9],
[ 1. , 0. , 40.4, 27.4, 37.8],
[ 2. , 0. , 42.5, 30.1, 48.5]])
推荐阅读
- python - 列表中最大数字的出现
- python - Issues while installing Anaconda3
- if-statement - How to fix `array literal error' when merging formulas?
- c# - Basic authentication with HttpClient in C# without hardcoding password
- mysql - deduct values of a column in a table from another table
- javascript - How can I deal with many values in one folder using JavaScript?
- wso2 - How do i use property files having my application properties in WSO2 EI
- django - 如何将不同的模型添加到 django 中的一个模型中?
- python - 生成多个逗号分隔的变量
- python - 我的 csv 百分比计数是相等的,尽管我知道它不是