我在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]
如何?最有效的方法是什么?
答案 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))
`