2013-10-20 39 views
0

我剛剛發現連接一個空數組與一個非空數組產生的非空數組包含非空數組,但更改爲一個浮點數。 例如:numpy連接的空與非空數組產量浮點數

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

np.concatenate([], [1]) 
array([1.]) 

這可與np.hstack相同

回答

0

默認情況下,在代碼中空數組

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的結果都是一個整數數組,正如您所期望的那樣。

所以我會說,是的,你的例子顯示某種意想不到的行爲一見鍾情,但它是非常無害的。

+0

其實代碼如下: – user1850133