2016-09-18 5 views
2

私はpythonとnumpyの初心者です。numpyの配列に値を挿入する

配列にint値を挿入したいとします。 私の現在のやり方は、適切な値にはなっていません。 サイズ '5'の配列 'a'を作成し、int値を 'a'に挿入します。

data = ocr['data'] 
test_data = ocr['testdata'] 

a = np.empty(5, dtype=np.int) 
for t in range(0,5): 
    np.append(a,np.dot(np.subtract(test_data[t], data[0]), np.subtract(test_data[t], data[d]))) 
+0

配列の中央に値を挿入しようとしていますか?最初は?またはそれらを最後に追加しますか? – freddiev4

+0

最後に追加します – user

+0

Np.appendは単なるnp.concatenateの形式です。新しい配列を返します。ドキュメントを見直してください。 – hpaulj

答えて

3

あなたはnp.empty()でnumpyの配列を初期化するとき、それはあなたのために十分なスペースを割り当てますが、これらのおそらく空のセル内の値がランダムゴミになります。例えば。

>>> a = np.empty(5,dtype = int) 
>>> a 
array([-2305843009213693952, -2305843009213693952,   4336320554, 
          0,     0]) 
>>> k = np.empty(5,dtype = int) 
>>> k 
array([-2305843009213693952, -2305843009213693952,   4336320556, 
       4294967297,  140215654037360]) 

したがって、長さ0の空の配列を初期化してから追加します。注:@hpauljが指摘したように、あなたはnp.empty()で初期化することができます

>>> a = np.array([],dtype = int) 
>>> a = np.append(a,2) 
>>> a = np.append(a,1) 
>>> a = np.append(a,3) 
>>> a = np.append(a,5) 
>>> a 
array([2, 1, 3, 5]) 

またはIE np.append()によって返される配列に等しくなるように、いくつかの配列を設定する必要がありますが、その後、あなたが初期化され、すべてのセルを使用する必要があります最初に追加する前にすなわち

>>> a = np.empty(3,dtype = np.int) 
>>> a[0] = 2 
>>> a[1] = 1 
>>> a[2] = 5 
>>> a = np.append(a,3) 
>>> a 
array([2, 1, 5, 3]) 
関連する問題