空数组与非空数组的 numpy 连接在浮点数中产生

  • 本文关键字:数组 浮点数 numpy 连接 numpy
  • 更新时间 :
  • 英文 :


我刚刚发现将空数组与非空数组连接起来会产生包含非空数组的单值数组,但更改为浮点数。例如:

import numpy as np
np.concatenate([1], [1])
array([1, 1])

np.concatenate([], [1])
array([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,并且 concatenate 的结果无论如何都是一个整数数组,正如您所期望的那样。

所以我想说的是,是的,你的例子乍一看在某种程度上显示出一种意想不到的行为,但它是相当无害的。

最新更新