将numpy.float64转换为整数

时间:2019-08-18 02:02:21

标签: python numpy numpy-ndarray

我目前正在处理作业,但遇到了问题。如何将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()

1 个答案:

答案 0 :(得分:0)

bike = np.loadtxt('Bike.txt')代替bike = np.loadtxt('Bike.txt').astype(int)应该可以解决问题。而且,在使用它时,您应该删除int(bike_2011)int(bike_2012) -这些绝对不起作用。

另一方面,您的程序遇到了更严重的问题,count_days返回一个数字,因此bike_2011bike_2012是普通变量,而不是列表或元组,因此尝试无论len(bike_2011)是整数还是浮点数,bike_2011都会给您同样的错误。您不能使用浮点数(或整数)的长度。