我有两个numpy数组,定义网格的x和y轴.例如:
x = numpy.array([1,2,3])
y = numpy.array([4,5])
Run Code Online (Sandbox Code Playgroud)
我想生成这些数组的笛卡尔积来生成:
array([[1,4],[2,4],[3,4],[1,5],[2,5],[3,5]])
Run Code Online (Sandbox Code Playgroud)
在某种程度上,由于我需要在循环中多次执行此操作,因此效率不高.我假设将它们转换为Python列表并使用itertools.product并返回到numpy数组并不是最有效的形式.
我的数据可以在给定日期有多个事件,也可以在某个日期没有事件.我参加这些活动,按日期计算并绘制它们.但是,当我绘制它们时,我的两个系列并不总是匹配.
idx = pd.date_range(df['simpleDate'].min(), df['simpleDate'].max())
s = df.groupby(['simpleDate']).size()
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,idx成为30个日期的范围.S 01-01-2013至09-30-2013但是S可能只有25天或26天,因为在给定日期没有发生任何事件.然后,当我尝试绘制时,我得到一个AssertionError,因为大小不匹配:
fig, ax = plt.subplots()
ax.bar(idx.to_pydatetime(), s, color='green')
Run Code Online (Sandbox Code Playgroud)
解决这个问题的正确方法是什么?我是否要删除IDX中没有值的日期或(我宁愿这样做)将系列添加到缺少日期的计数为0.我宁愿拥有30天的完整图表,其中包含0值.如果这种方法是正确的,那么有关如何开始的任何建议?我需要某种动态reindex功能吗?
这是一个S(df.groupby(['simpleDate']).size() )的片段,注意没有04和05的条目.
09-02-2013 2
09-03-2013 10
09-06-2013 5
09-07-2013 1
Run Code Online (Sandbox Code Playgroud)