2017-10-13 7 views
0

3列(実際はありません)でnumpy配列を作成したいと思います。最後は可変長のリストです(実際には)。リストを持つ配列要素を設定する

N = 2 
A = numpy.empty((N, 3)) 
for i in range(N): 
    a = random.uniform(0, 1/2) 
    b = random.uniform(1/2, 1) 
    c = [] 
    A[i,] = [a, b, c] 

実行中、リストの項目を追加または削除します。私はnumpy.emptyを使って配列を初期化しました。これはオブジェクト型を与えるはずですから、配列エラーを持つ配列を設定しています。私は私が知っている、それは私がしたいことです。

このトピックに関する以前の質問は、エラーを回避するためのものです。私はエラーを回避する必要があります。実際の配列は1M +行を持っています。さもなければ、私は辞書を考えるでしょう。アイデア?

+0

"配列を初期化するためにnumpy.emptyを使用しました。これはオブジェクト型" - 何を与えるのでしょうか?いいえ。オブジェクトdtypeの配列が必要な場合は、 'dtype = object'でそれを欲しいと伝えてください。 – user2357112

+0

'np.empty'のデフォルトのdtypeはfloatです。試用版「A」を調べてください。 – hpaulj

+0

素晴らしい!私の誤解を訂正してくれてありがとう。 A = numpy.empty((N、3))。astype(object)が動作します。 – zazizoma

答えて

0

numpy.empty docsあたり

A = numpy.empty((N, 3), dtype=object) 

Aを初期化します。これはfloat(デフォルトのデータ型)の配列を最初に作成し、それをオブジェクト型にキャストするだけであるA = numpy.empty((N, 3)).astype(object)よりも論理的です。

関連する問題