Python:将整数数组与1个空数组连接

时间:2020-02-17 13:10:03

标签: python arrays integer concatenation

我在NumPy中有一个简单的一维数组和一个空数组。我尝试将它们连接起来,但是却在float中得到一个数组。

from numpy import *
a = zeros(5,'i')
a += 1
b = []
c = hstack((a,b))
d = concatenate((a, b))
print("a",a)
print("b",b)
print("c",c)
print("d",d)

我知道了

a [1 1 1 1 1]

b []

c [1. 1. 1. 1. 1.]

d [1. 1. 1. 1. 1.]

但是我正在寻找一个整数数组

[1 1 1 1 1]

如何?最有效的方法是什么?

4 个答案:

答案 0 :(得分:1)

尝试这种方式:

numpy数组dtype默认为float。因此,将其更改为np.int32

a = np.zeros(5,dtype=np.int32)
a += 1
b = np.array([],dtype=np.int32)

答案 1 :(得分:1)

您可以将b创建为dtype np.array的0尺寸'i'而不是列表,即:

import numpy as np
a = np.zeros(5,'i')
a += 1
b = np.array([],'i')
c = np.hstack((a,b))
d = np.concatenate((a, b))
print(d)

输出:

[1 1 1 1 1]

答案 2 :(得分:1)

我认为numpy假定空数组为float64数据类型。 如果运行以下

np.array([]).dtype

它返回dtype('float64') 所以您应该按照以下步骤初始化空数组

 b=[]
 b=np.array(b,dtype="int32")

答案 3 :(得分:1)

您愿意与输入具有相同数组的点是什么?

使用 numpy.ones 减少计算量,而不是 numpy.zeros

`

import numpy
a = numpy.ones(5,dtype=int) 
b = []
b = numpy.array([],dtype=int)
d = concatenate((a, b))

`