获取numpy结构化(即记录)数组的维度?

2024-04-19 13:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个numpy结构化数组(又称记录数组):

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 = 10x = 4

谢谢!你知道吗


Tags: numpydatadateobjectnp记录数组float
1条回答
网友
1楼 · 发布于 2024-04-19 13:51:06

这是结构化数组令人困惑的地方之一。你知道吗

基本上有一个(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

相关问题 更多 >