Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:使用缓冲区设置具有对象成员的无效数组。绘制numpy数组的时间序列_Python_Numpy_Matplotlib_Strptime_Genfromtxt - Fatal编程技术网

Python ValueError:使用缓冲区设置具有对象成员的无效数组。绘制numpy数组的时间序列

Python ValueError:使用缓冲区设置具有对象成员的无效数组。绘制numpy数组的时间序列,python,numpy,matplotlib,strptime,genfromtxt,Python,Numpy,Matplotlib,Strptime,Genfromtxt,我有两个带(时间和日期)的numpy数组,第三个带rain。最后,我想用matplotlib在xy绘图中绘制所有信息! 这就是我到目前为止得到的 import os import time from datetime import datetime import time import numpy as np import matplotlib.dates as mdates import matplotlib.pyplot as plt date = np.array(["01.06.20

我有两个带(时间和日期)的numpy数组,第三个带rain。最后,我想用matplotlib在xy绘图中绘制所有信息! 这就是我到目前为止得到的

import os
import time
from datetime import datetime
import time
import numpy as np
import matplotlib.dates as mdates
import matplotlib.pyplot as plt


date = np.array(["01.06.2015", "01.06.2015", "01.06.2015"], dtype=object)
time = np.array(["12:23:00", "14:54:00", "14:56:00"], dtype=object)
# Rain
rain = np.array([2.544, 1.072, 1.735]

# Calculations to make one array of time and date,
# called timestamp
A = np.vstack((date, time))
A_transp = A.transpose()
A_transp.shape
A_transp.type
最后,如前所述,我想要一个(x,y)图,带有时间戳(所以时间和日期组合成一个浮点数数组,雨在其他轴上

谢谢你的帮助

马库斯 谢谢你的帮助,但我没有得出结论! 我做了更多的步骤

# Get a new .out file, to get a time tuple
# see strptime. 
# Finally I would like to make a floating point number out of the 
# timetuple, to plot the hole thing! 
#
mydata = np.savetxt('A_transp.out', A_transp
       ,fmt="%s")
# Dateconv
dateconv = lambda s: datetime.strptime(s, '%d.%m.%Y %H:%M:%S')
# ColNames
col_names = ["Timestamp"]
# DataTypes
dtypes = ["object"]
# Read in the new file
mydata_next = np.genfromtxt('A_transp.out', delimiter=None,
     names=col_names, dtype=dtypes, converters={"Timestamp":dateconv})
因此,在np.genfromtxt之后出现以下错误消息

Traceback (most recent call last):
File "parsivel.py", line 155, in <module>
names=col_names, dtype=dtypes, converters={"Timestamp":dateconv})
File "/home/unix/anaconda2/lib/python2.7/site-
packages/numpy/lib/npyio.py", line 1867, in genfromtxt
output = np.array(data, dtype)
ValueError: Setting void-array with object members using buffer.
最后,我想描绘如下

# Plot
# Fail
#plt.plot_date(mydata_next, rain)
#plt.show()

但是现在所有的绘图都失败了,因为我无法从一个_transp!中生成一个时间元组!可能strtime函数也不在这里,或者有另一种方法,通过np.savetxt绕道,尝试重新调整一个_transp?

从原始日期和时间数组开始,您可以在一个字符串中获得一个日期-时间字符串表示只需添加它们,就可以删除数组:

In[61]: date_time = date + time

In[62]: date_time
Out[62]: array(['01.06.201512:23:00', '01.06.201514:54:00', '01.06.201514:56:00'], dtype=object)
现在,您可以将日期时间字符串转换为日期时间格式。例如:

In[63]: date_time2 = [datetime.strptime(d, '%d.%m.%Y%H:%M:%S') for d in date_time]

In[64]: date_time2
Out[64]: 
[datetime.datetime(2015, 6, 1, 12, 23),
 datetime.datetime(2015, 6, 1, 14, 54),
 datetime.datetime(2015, 6, 1, 14, 56)]
这就是绘制数据所需的全部内容:

plt.plot_date(date_time2, rain)

您看过绘图文档了吗?请慢慢阅读文档和最终教程。如果您遇到问题,可以在此处发布,我们将尽力帮助您。@code11谢谢您的帮助,但我没有得出结论!我所做的进一步步骤在编辑版本中!Thxs
plt.plot_date(date_time2, rain)