将值插入到numpy数组中

3
我是一个Java程序员,对Python和NumPy不熟悉。
我想要将整数值插入到一个数组中。 但是我的当前做法没有得到正确的值。 我创建了一个大小为5的数组'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])))

你是想在数组的中间插入值吗?还是在开头?亦或是在末尾追加? - freddiev4
append it to the end - user
np.append只是np.concatenate的一种形式。它返回一个新数组。请查看其文档。 - hpaulj
我认为您想要的是 a[I]=n.dot...;这将为a中每个预分配的元素分配一个新值。 - hpaulj
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接