2016-08-09 3 views
-3

Я пытаюсь добавить список месячных температур в большой список, который будет содержать 24 месяца температур. Проблема в том, что они задаются в float, но для добавления элементов они должны быть целыми числами.Append float to list with for loop in python

temperatures = [] 
np.array(temperatures, dtype = np.float32) 

(после моего первого месяца, я прилагаю мои значения больших температур список и пустой TEMP1 на следующий месяц)

for item in TEMP1:  
     np.insert(temperatures, TEMP1[item]) 

сообщение об ошибке:

File "/home/piscopo/Bureau/EC/Alert_extraction.py", line 87, in <module> 
np.insert(temperatures, TEMP1[item]) 

TypeError: list indices must be integers, not numpy.float32 

Спасибо

+3

Нет, вы неправильно понимаете эту ошибку. По какой-то причине вы индексируете * TEMP1 со значением, которое вы пытаетесь вставить. –

+0

Также у меня такая же проблема, но вместо поплавков это будет datetime64. Надеюсь, что с этим ответом я смогу решить обе свои проблемы. – saraann87

+0

Почему вы используете 'np.array()', но игнорируете возвращаемое значение? Вы читали документацию 'np.insert()', здесь вы смешиваете аргументы. –

ответ

2

Вы должны сохранить свой nparray в переменной, а затем вы можете добавить месячную температуру TEMP1 (0):

import numpy as np 

TEMP1 = [22.4, 14.4, 12.3] 
temperatures = [] 
floatTemperatures = np.array(temperatures, dtype = np.float32) 

floatTemperatures = np.append(floatTemperatures, TEMP1) 
+0

Большое вам спасибо, он также работает с datetime64. Очень хорошо. – saraann87