2014-01-16 49 views
0

我有一个矩阵,名为X_test,从sklearn.feature_extraction.text.CountVectorizer生成。当我执行以下功能:为什么numpy.size函数表现怪异?

   import numpy as np 
       np.set_printoptions(threshold='nan') 
       print(X_test.shape) 
       print(X_test.size) 
       print(X_test.ndim) 
       print(np.array(X_test)) 

我得到:

(10211, 218904) 
    477881 
    2 
    (0, 934) 14 
    (0, 6773) 1 
    (0, 11035) 1 
    (0, 22362) 1 
    (0, 23619) 1 
    (0, 24812) 1 
    (0, 25224) 1 
    : : 
    (0, 64428) 1 
    (0, 66506) 1 

我不知道为什么大小不是矩阵尺寸(形状)的产品。

回答

5

来自CountVectorizer的结果是scipy.sparse矩阵,而不是NumPy数组。在这样的矩阵中,np.size报告实际存储的元素的数量,其可以(应该)远小于shape的乘积。

(另外,将其转换为一个数组,使用toarray方法,但要注意,你会创造在尺寸,而不是用于稀疏格式几MB的数组几个GB)。

相关问题