2

1現在、センサーからの測定値を保存するために構造化配列を使用しています。配列 ("data" という名前) は次元 2000x3 で、"samples"、"timestamp"、"labels" の 3 つのフィールドがあります。samples は 6 要素のベクトルです。たとえば、1 つの行は次のようになります。

([-19.837763650963275, -19.61692779005053, -18.5301618270122, -13.413484985874076, -13.192649124961326, -12.105883161923], 0.0, 0)
[('samples', '<f8', (6,)), ('timestamp', '<f8'), ('labels', '<i4')]

1 つの行のすべてのサンプルが必要な場合は、次のように行にアクセスできます。

data["samples"][10]

これは正常に動作しますが、向きを変えて次のように書くと:

data[10]["samples"]

次のエラーが表示されます。

ValueError: 複数の要素を持つ配列の真の値があいまいです。a.any() または a.all() を使用する

なぜこれが起こっているのか誰にも分かりますか?

編集: 理解を深めるために、「データ」配列の最初の 10 行を次に示します。

[ ([-19.837763650963275, -19.61692779005053, -18.5301618270122, -13.413484985874076, -13.192649124961326, -12.105883161923], 0.0, 0)
 ([-18.66282477705446、-18.449317421024432、-17.369283339067675、-12.357118609142269、-12.145937637117552、-11.068086720774204]、0.0、
 ([-17.69388207920866、-17.49198382816449、-16.417085567075173、-11.53193799727324、-11.33976221074188、-10.268890664091229]、0.0、0)
 ([-16.868088042481606、-16.683019283158636、-15.610803357043569、-10.88697503359368、-10.732729221349611、-9.663174869208511]、0.0、
 ([-16.152597338007514、-15.99074244228478、-14.917542852993487、-10.420257243109129、-10.371835643625495、-9.27447077440.0、0.0、
 ([-15.527885804583931、-15.39736918876727、-14.317660328685264、-10.451759205557037、-10.011944429521288、-9.006031495483906]、0.0、
 ([-14.981993405744573、-14.894234811642814、-13.799157258392123、-10.01393043959338、-9.563854671143899、-8.587392657229502]、0.0、0)
 ([-14.508475562047407, -14.48315918653869, -13.355984261155621, -9.577456476813333, -9.16920566037696, -8.205174149255923], 0.0, 0)
 ([-14.106856958780497、-14.199089434545343、-12.989626950396643、-9.214711746255777、-8.944244361010687、-7.942834820090279]、0.0)
 ([-13.789298779585817、-13.943732248940886、-12.72321280228509、-9.208476598556874、-8.629970466866272、-7.690122078593869]、0.0、0)]

編集 2: numpy バ​​ージョン 1.10.4 を使用しています

そして、私は実際には使用していません

data[0]["samples"]

しかし、私はそれを試しましたが、うまくいきません。私はこのように使用しています:

データの行:
    print(行["サンプル"])

考えられる最も基本的な例を実行しましたが、これは驚くほど機能します。

考えられる最も基本的な例を実行しましたが、これは驚くほど機能します。

a = np.zeros(10, dtype = [("a", "5f8"), ("b", "i4")])
    print(a["a"][5])   # Works 
    print(a[5]["a"])   # Surprisingly works as well
4

0 に答える 0