我對二進制文本分類的任務的工作,我已經如下應用在我的數據向量化:錯誤合併兩個二維數組時零維數組不能被串聯
count_vect = CountVectorizer(tokenizer=tokens)
X_train_counts = count_vect.fit_transform(docs_train.data)
print X_train_counts.shape
(150, 370)
因爲我想只需要從類中隨機抽取「0」(一個在我的例子),並以一流的歸類「1」,我做了以下內容:
x = X_train_counts
y = docs_train.target
a_x,a_y=x[y==0,:],y[y==0]
b_x,b_y=x[y==1,:],y[y==1]
inds=np.random.choice(range(a_x.shape[0]),50)
random_x=a_x[inds,:]
random_y=a_y[inds]
x_merged=np.concatenate((random_x,b_x))
y_merged=np.concatenate((random_y,b_y))
X_train,y_train=shuffle(x_merged, y_merged, random_state=0)
但我總是得到以下錯誤:
x_merged=np.concatenate((random_x,b_x))
ValueError: zero-dimensional arrays cannot be concatenated
雖然當我打印的形狀也gaves我:
print random_x.shape
print b_x.shape
(50, 370)
(50, 370)
任何想法如何解決呢?當然它會保留與標籤鏈接的索引。
更新: 這是內容/類型每個陣列的打印時,下面的命令執行:
print random_x[:5,:].toarray()
print b_x[:5,:].toarray()
print (type(random_x))
print (type(b_x))
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[4 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
[[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]
[0 0 0 ..., 0 0 0]]
<class 'scipy.sparse.csr.csr_matrix'>
<class 'scipy.sparse.csr.csr_matrix'>
打印了一下兩個數組的,所以我們可以看到什麼在裏面。請張貼確切的印刷品。我認爲它不是關於形狀,而是關於類型或尺寸。 – armatita
我已經更新了每個數組的內容/類型的問題......謝謝 – Ophilia
這是它與concatenate函數不兼容的類型。我已經給出了一個正式的答案來解決這個問題(嗯,我想)。 – armatita