import numpy as n
a=n.loadtxt("data.txt",dtype=[('ID',int),('ID2',int),('ID3',int),
('GENDER','|S1'),('ID4',int),('ID5',int)])
print len(n.unique(a[a['GENDER']==f]['ID']))
我对这段代码有疑问,我试图计算我的数据文件中有多少女性,所以我使用了 numpy .loadtxt 和 .unique 但我遇到了奇怪的(对我来说)错误
Traceback (most recent call last):
File "C:\Python27\Lib\site-packages\xy\bazy.py", line 78, in <module>
a=n.loadtxt("C:\\Users\\DzwiedzN7\\Desktop\\plec.txt",dtype=[('ID',int),('U- ID',int),('KIER',int),('PLEC','|S1'),('TRYB',int),('RODZAJ',int)])
File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 848, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 616, in <lambda>
return lambda x: int(float(x))
ValueError: invalid literal for float(): 0,6288,10,f,3,4
我不明白,float 的迭代是什么意思?没有 float,也不应该有。
最佳答案
loadtxt
的默认分隔符是空格。您想要使用逗号,因此将参数 delimiter=','
添加到 loadtxt
调用中。
关于python - numpy loadtxt 值错误 : invalid literal for float(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30360147/