将值插入numpy数组

时间:2016-09-18 03:40:00

标签: python arrays numpy

我是python和numpy的新手,来自java背景。

我想将int值插入数组中。 然而,我目前的做法并没有产生正确的价值。 我创建了一个数组' a'大小为5,并希望将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])))

1 个答案:

答案 0 :(得分:3)

当您通过np.empty()初始化numpy数组时,它会为您分配足够的空间,但这些所谓的空单元格内的值将是随机垃圾。 E.g。

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