Запуск сценария приводит к исключению: Аргумент TypeError int () должен быть строкой, байтовым объектом или числом, а не datetime.datetime в строке data = np.asarray(tmp, dtype=data_type)
from datetime import datetime
import numpy as np
data_type = [("Scan", "i4"), ("Time", "M8[us]"), ("101 (C)", "f8"), ("Alarm
101", "?"), ("102 (C)", "f8"), ("Alarm 102", "?")]
data_text = """1,12/6/2018 09:22:25:462,22.661,0,22.046,0
2,12/6/2018 09:22:35:446,22.874,0,22.289,0
3,12/6/2018 09:22:45:446,22.948,0,22.385,0"""
def main():
tmp = []
for line in data_text.split("\n"):
dataLine = []
for (h, _), v in zip(data_type, line.split(",")):
if h == "Scan":
dataLine.append(int(v))
elif h == "Time":
# dataLine.append(datetime.strptime(v, "%m/%d/%Y %H:%M:%S:%f"))
dataLine.append(np.datetime64(datetime.strptime(v, "%m/%d/%Y %H:%M:%S:%f"), "us"))
elif "Alarm" in h:
dataLine.append(bool(v))
else:
dataLine.append(float(v))
tmp.append(dataLine)
data = np.asarray(tmp, dtype=data_type)
if __name__ == "__main__":
main()
Из пустой документации я не вижу причин, по которым она не должна работать.Лучшее, что я могу понять, это то, что мне чего-то не хватает в numpy структурированных массивах.Это проблема с синтаксисом, ошибка с ошибками или вообще возможная связь с numpy?
Моя настройка:
- Windows 10
- Python версии 3.7.0
- Numpy версия 1.15.4