2016-09-18 180 views
2

我是新來的python和numpy,來自java背景。將值插入到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.append()

>>> 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]) 

或者返回的數組,你可以通過np.empty()初始化但你必須用掉你初始化的所有單元格首先在追加之前。即

>>> 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])