假设我有一个numpy
结构化数组(a.k.a。记录数组):
record_types = np.dtype([
('date',object), #00 - Timestamp
('lats',float), #01 - Latitude
('lons',float), #02 - Longitude
('vals',float), #03 - Value
])
data = np.zeros(10, dtype=record_types)
如果我尝试调用shape属性,我会得到(10,)
我该如何做以下事情:
y, x = data.shape
获取y = 10
和x = 4
谢谢!
答案 0 :(得分:4)
这是关于结构化数组的一个令人困惑的事情。
你基本上有一个(n-1)D数组,其中每个项是一个类似C的结构。
这种类型的结构允许各种有用的东西(例如,带有二进制格式的简单文件IO),但是对于许多其他用例来说它很混乱。对于你正在做的事情,使用pandas
而不是直接使用结构化数组可能会更好。
有人说过,这就是你如何得到你所要求的:
def structured_shape(x):
if len(x.dtype) > 0
return list(x.shape) + [len(x.dtype)]
else:
return x.shape