前提・実現したいこと
Pythonで構造体のようなデータを取り扱おうとしています。
以下の記事を参考に作成しようとしていたのですが、np.dtypeの引数objについて、
中身に可変長の配列を持たせたいと考えました。
https://qiita.com/minoru-github/items/95778a425b3f0a60f78c
発生している問題・エラーメッセージ
可変長の配列を、どのように指定すればいいのかがわからない。
該当のソースコード
Python
1PLAIN = np.dtype([('points', np.float32, (,)), # この行の(,)に指定する値 2 ('mean', np.float32, (1,)), 3 ('cov', np.float32, (1,)), 4 ], 5 align=True 6 ) 7 8p = np.zeros((1, 0), dtype=PLAIN) 9 10print(p)
試したこと
参考記事で紹介されているサイトの内容も確認してみましたが、特に記載はありませんでした。(見落としていたら申し訳ありません。)
指定しているのはshapeだろう、と考えて、shape 可変長 と調べてみましたが該当しそうなものは見つかりませんでした。
ひとまず適当なサイズで作っておいて、後からnp.appendしようと以下のコードを試してみたものの、
キャストできないという以下のエラーが出ます。
p['points'][0] = np.append(p['points'][0], points, axis = 0) ValueError: could not broadcast input array from shape (4,2) into shape (2,2)
Python
1PLAIN = np.dtype([('points', np.float32, (2,2)), 2 ('mean', np.float32, (1,)), 3 ('cov', np.float32, (1,)), 4 ], 5 align=True 6 ) 7 8p = np.zeros(1, dtype=PLAIN) 9 10points = np.array([[1, 1], [1, 2]]) 11p['points'][0] = np.append(p['points'][0], points, axis = 0) 12print(p)
補足情報(FW/ツールのバージョンなど)
Python 2.7
numpy 1.16.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。