我有一个名为 X_test 的矩阵,由sklearn.feature_extraction.text.CountVectorizer
生成。当我执行以下功能时:
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
我不知道为什么尺寸不是矩阵尺寸(形状)的乘积。
答案 0 :(得分:5)
CountVectorizer
的结果是scipy.sparse
矩阵,而不是NumPy数组。在这样的矩阵上,np.size
报告实际存储的元素的数量,这些元素可以(应该)远小于shape
的乘积。
(另外,要将其转换为数组,请使用toarray
方法,但请注意,您将创建一个大小为几GB的数组,而不是用于稀疏格式的几个MB。)< / p>