我想在(N, 3) numpy array
进行直方图,其三个维度表示经度,纬度和时间标记相应的,就像这样:如何使用histogramdd对dtype为对象的numpy数组执行直方图?
array([[116.45565032958984, 39.889976501464844,
datetime.datetime(2012, 10, 1, 6, 32, 39)],
[116.45565032958984, 39.889984130859375,
datetime.datetime(2012, 10, 1, 6, 33, 31)],
[116.45565032958984, 39.889984130859375,
datetime.datetime(2012, 10, 1, 6, 33, 33)],
[116.45565032958984, 39.889984130859375,
datetime.datetime(2012, 10, 1, 6, 33, 37)],
[116.45561981201172, 39.89040756225586,
datetime.datetime(2012, 10, 1, 6, 34, 42)],
[116.45561981201172, 39.890411376953125,
datetime.datetime(2012, 10, 1, 6, 36, 40)],
[116.45549774169922, 39.8941650390625,
datetime.datetime(2012, 10, 1, 6, 37, 54)],
[116.45556640625, 39.92431640625,
datetime.datetime(2012, 10, 1, 6, 38, 57)],
[116.45578002929688, 39.93780517578125,
datetime.datetime(2012, 10, 1, 6, 42, 10)],
[116.44468688964844, 39.93989944458008,
datetime.datetime(2012, 10, 1, 6, 43, 21)]], dtype=object)
我试图用np.histogramdd
这样的:
import numpy as np
np.histogramdd(my_data, bins = (lon_bin_num, lat_bin_num, time_bin_num),
range = [[lon_min, lon_max], [lat_min, lat_max],
[start_datetime, end_datetime]])
而且有TypeError
:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-271-58c94eecf21d> in <module>()
1 np.histogramdd(tmp2, bins = (lon_bin_num, lat_bin_num, time_bin_num),
----> 2 range = [[lon_min, lon_max], [lat_min, lat_max], [start_datetime, end_datetime]])
/*/*/anaconda/lib/python2.7/site-packages/numpy/lib/function_base.pyc in histogramdd(sample, bins, range, normed, weights)
318 smax = zeros(D)
319 for i in arange(D):
--> 320 smin[i], smax[i] = range[i]
321
322 # Make sure the bins have a finite width.
TypeError: float() argument must be a string or a number
我知道这是导致错误的日期时间对象,但我想知道如何纠正这个错误,或者如何在numpy ndarray上执行直方图,其dtype = object
?
它确实有帮助,谢谢:) – AnnabellChan 2014-12-09 14:35:38