我目前正在处理作业,但遇到了问题。如何将numpy.float64转换为整数。
import numpy as np
bike = np.loadtxt('Bike.txt')
def count_days(year, month, day):
year_2011=[31,28,31,30,31,30,31,31,30,31,30,31]
year_2012=[31,29,31,30,31,30,31,31,30,31,30,31]
if (year == 2011):
days= sum(year_2011[:(month-1)])+day
else:
days= 365+sum(year_2012[:month-1])+day
return days
bike_2011 = bike[count_days(2011, 0, 0)-1]
bike_2012 = bike[count_days(2012, 0, 0)-1]
int(bike_2011)
int(bike_2012)
for e in len(bike_2012):
if bike[e] > 8000 : print (bike [e], x)
这将返回以下错误。
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-25-f111e601c474> in <module>
1 bike_2012.astype(int)
----> 2 for e in len(bike_2012):
3 if bike[e] > 8000 : print (bike [e], x)
TypeError: object of type 'numpy.float64' has no len()
答案 0 :(得分:0)
用bike = np.loadtxt('Bike.txt')
代替bike = np.loadtxt('Bike.txt').astype(int)
应该可以解决问题。而且,在使用它时,您应该删除int(bike_2011)
和int(bike_2012)
-这些绝对不起作用。
另一方面,您的程序遇到了更严重的问题,count_days
返回一个数字,因此bike_2011
和bike_2012
是普通变量,而不是列表或元组,因此尝试无论len(bike_2011)
是整数还是浮点数,bike_2011
都会给您同样的错误。您不能使用浮点数(或整数)的长度。