2016-12-27 80 views
1

你好我叫tfidf2下面的矩陣,該矩陣的形狀是 (11159,1985年),它有11159行和1985列,我想串聯一個新的矩陣這一個,叫datesNumpy矩陣具有的(11159,12)的形狀,它們具有相同的行數,從而能夠串聯它,被叫tfidf3新矩陣的形狀應爲(11159,1997),如何連接以下兩個矩陣?

import numpy as np 
tfidf2 = tdf.transform(list_cluster) 
print("Shape tfidf2",tfidf2.shape) 
listAux=[] 
for l in listMonth: 
     listAux.append([int(y) for y in l]) 
datesNumpy=np.array([np.array(xi) for xi in listAux]) 
print("Shape datesNumpy",datesNumpy.shape) 

我嘗試:

tfidf3=np.stack((tfidf2, datesNumpy), axis=-1) 

但是,我明白了支持克服這種情況:

Shape tfidf2 (11159, 1985) 
Shape datesNumpy (11159, 12) 
Traceback (most recent call last): 
    File "Main.py", line 235, in <module> 
    tfidf3=np.stack((tfidf2, datesNumpy), axis=-1) 
    File "/usr/local/lib/python3.5/dist-packages/numpy/core/shape_base.py", line 339, in stack 
    raise ValueError('all input arrays must have the same shape') 
ValueError: all input arrays must have the same shape 

從這裏的反饋後我試圖:

tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1) 

但我得到:

Traceback (most recent call last): 
    File "Main.py", line 235, in <module> 
    tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1) 
ValueError: zero-dimensional arrays cannot be concatenated 
+0

'np.hstack'應該做 – cel

+0

http://stackoverflow.com/questions/41338677/how -to-add-the-following-feature-to-a-tfidf-matrix - 這張海報之前嘗試過'hstack'。還有一些其他信息我們不知道。 '@ neo33' - 你應該編輯你的舊帖子,而不是在沒有新的信息的情況下重複它。您在該帖子中已經與我對話。 – hpaulj

+0

@hpaulj,感謝您的支持你需要什麼樣的信息來幫助我?,現在有了純粹的numpy陣列後,我再一次感謝支持 – neo33

回答

4

numpy.stack(數組,軸= 0)

沿着一個新軸加入一系列數組。

軸參數指定新軸的在結果的 尺寸的索引。例如,如果axis = 0,它將是第一個維度,如果axis = -1,它將是最後一個維度。

參數:

陣列:array_like每個陣列的序列必須具有相同的形狀

axis:int,可選輸入數組沿其堆疊的結果數組中的軸。

返回:

堆疊:ndarray的 堆疊陣列具有一個比輸入陣列的更多維度。

根據該文件必須具有相同的形狀。

你必須concatenate

例子:

tfidf2 = np.zeros((11159, 1985)) 
datesNumpy = np.ones((11159, 12)) 

tfidf3=np.concatenate([tfidf2, datesNumpy], axis=1) 
print(tfidf3.shape) 

輸出:

(11159, 1997) 
+0

感謝您的支持,但我無法實現所需的矩陣, – neo33

+1

@ neo33 您確定你的矩陣有數據嗎?在連接 – eyllanesc

+0

之前打印tfidf2.shape和datesNumpy.shape我試圖執行一個打印並且我得到(11159,12)(11159,1985),我相信它可能是失敗的,因爲tfidf2是一個稀疏矩陣, – neo33