2

構造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 = 10にはx = 4

ありがとう!

4

1 に答える 1

4

これは、構造化配列に関する紛らわしい点の 1 つです。

基本的に、各項目が C のような構造体 である (n-1)D 配列があります。

このタイプの構造により、あらゆる種類の便利な機能 (たとえば、バイナリ形式の簡単なファイル IO) が可能になりますが、他の多くのユース ケースでは非常に混乱します。あなたがしていることについてはpandas、構造化された配列を直接使用するよりも、使用する方が良いでしょう。

そうは言っても、求めているものを取得する方法は次のとおりです。

def structured_shape(x):
    if len(x.dtype) > 0
        return list(x.shape) + [len(x.dtype)]
    else:
        return x.shape
于 2013-11-13T13:52:39.817 に答える