我试图对数组longYearDig
中的值进行舍入,然后将值从浮点转换为整数。然而,当我输入一个包含10个值的数组时,我只得到一个浮点数
我要说的是:
longYearDig = [ 98.32428472 98.32433235 98.32445675 98.32451913 98.32451913
98.32458141 98.32464367 98.32489267 98.32501715 98.32545376]
我想要的是:
yearDig = [98, 98, 98, 98, 98, 98, 98, 98, 98, 98]
year = [1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998, 1998]
代码:
import numpy as np
import math
import datetime
filename = 'zarya2.txt'
a = np.genfromtxt(filename)
evens = []
odds = []
for i in range(20): #2913*2
if np.mod(i,2) == 0:
evens.append(a[i,:])
else:
odds.append(a[i,:])
oddsArray = np.asarray(odds)
evensArray = np.asarray(evens)
'Four Digit Year'
longYearDig = evensArray[:,3] /1000
print 'longYearDig', longYearDig
for i in range(len(longYearDig)):
pointyearDig = math.floor(longYearDig[i])
print 'pointyearDig', pointyearDig
for i in range(len(pointyearDig)):
yearDig = int(pointyearDig[i])
print 'yearDig', yearDig
#yearDigit = 98
for i in range(len(yearDig)):
if yearDig > 17:
year = yearDig + 1900
else:
year = yearDig + 2000
print('year', year)
产出:
longYearDig [ 98.32428472 98.32433235 98.32445675 98.32451913 98.32451913 98.32458141 98.32464367 98.32489267 98.32501715 98.32545376]
pointyearDig 98.0
File "/Users/mrmenzel/Desktop/orbits/zaryaISSdataTLE", line 93, in for i in range(len(pointyearDig)):
TypeError: object of type 'float' has no len()
只需使用numpy的楼层功能
它将对每个元素应用floor函数,并返回所需的数组。 然后你可以这样结束:
另一种解决方案:
您可以使用python中的//运算符,它为您提供分区的楼层部分。您可以压缩代码,然后执行以下操作:
相关问题 更多 >
编程相关推荐