空数组与非空数组的numpy串联产生浮点值
我刚刚发现,将空数组与非空数组连接在一起会产生一个包含非空数组的单值数组,但会变为浮点数组。 例如:空数组与非空数组的numpy串联产生浮点值,numpy,Numpy,我刚刚发现,将空数组与非空数组连接在一起会产生一个包含非空数组的单值数组,但会变为浮点数组。 例如: import numpy as np np.concatenate([1], [1]) array([1, 1]) 但是 默认情况下,代码中的空数组np.hstack也是如此 np.concatenate([], [1]) 使用dtype=float初始化,并将第二个int数组转换为float 现在,值得一提的是,您是否曾经在空数组上使用串联。显然,您从来没有像这样编写代码 a=array(
import numpy as np
np.concatenate([1], [1])
array([1, 1])
但是
默认情况下,代码中的空数组np.hstack也是如此
np.concatenate([], [1])
使用dtype=float
初始化,并将第二个int
数组转换为float
现在,值得一提的是,您是否曾经在空数组上使用串联。显然,您从来没有像这样编写代码
a=array([1,2,3])#int array
b=np.concatenate([], a)
可能发生的一种情况如下:
a=array([1,2,3])#int array
b=concatenate((a[:j],a)) #usually j!=0 here
然后,由于某些原因,代码运行时使用j=0
。诚然,a[:0]
是空的,但它仍然保留dtype=int
,并且连接的结果是一个整数数组,正如您所期望的那样
所以我想说,是的,你的例子乍一看显示了某种意想不到的行为,但它是无害的
a=array([1,2,3])#int array
b=concatenate((a[:j],a)) #usually j!=0 here