2011-12-31 59 views
4

我目前有一個numpy多維數組(float類型)和一個numpy列數組(int類型)。我想把它們組合成一個多維的numpy數組。不同類型的Python,hstack列numpy數組(列向量)

import numpy 

>> dates.shape 
(1251,) 
>> data.shape 
(1251,10) 
>> test = numpy.hstack((dates, data)) 
ValueError: all the input arrays must have same number of dimensions 

要說明的是類型數組是不同的:

>> type(dates[0]) 
<type 'numpy.int64'> 
>> type(data[0,0]) 
<type 'numpy.float64'> 
+0

您是否嘗試過dstack? – 2011-12-31 03:01:04

+0

我將numpy.dstack顯示爲沿第3軸的堆疊。我想採取一個1251,10(在這種情況下),並把它變成一個1251,11,你是否建議我會使用dstack呢? – benjaminmgross 2011-12-31 03:09:42

+0

很好對不起,以爲你想要一個1251,1251,10 – 2011-12-31 03:12:21

回答

10
import numpy as np 

np.column_stack((dates, data)) 

這些類型自動轉換爲最精確的,所以你的int數組將被轉換爲float。

+0

非常感謝格里菲斯,這肯定是個訣竅,非常感謝,我希望不必投出漂浮物迴歸序號,但它會工作得很好,再次感謝! – benjaminmgross 2011-12-31 03:29:00

+0

如果你喜歡我的回答,給我一個投票,並檢查它是正確的;) – 2011-12-31 03:30:39

1

的類型並不重要,你應該重塑日期(1 1251)使用hstack之前。

Ps。整數將被轉換爲浮動。

+0

非常感謝您的意見,這確實有效!非常感謝! – benjaminmgross 2011-12-31 03:29:50

0

test = numpy.hstack((dates[:,numpy.newaxis], data))