为什么麻木的形状是空的



我有以下内容

(Pdb) training
array(<418326x223957 sparse matrix of type '<type 'numpy.float64'>'
    with 165657096 stored elements in Compressed Sparse Row format>, dtype=object)
(Pdb) training.shape
()

为什么没有形状信息?

编辑:这就是我所做的:

training, target, test, projectids = generate_features(outcomes, projects, resources)
target = np.array([1. if i == 't' else 0. for i in target])
projectids = np.array([i for i in projectids])
print 'vectorizing training features'
d = DictVectorizer(sparse=True)
training = d.fit_transform(training[:10].T.to_dict().values())
#test_data = d.fit_transform(training.T.to_dict().values())
test_data = d.transform(test[:10].T.to_dict().values())
print 'training shape: %s, %s' %(training.shape[0], training[1])
print 'test shape: %s, %s' %(test_data.shape[0], test_data[1])
print 'saving vectorized instances'
with open(filename, "wb") as f:
    np.save(f, training)
    np.save(f, test_data)
    np.save(f, target)
    np.save(f, projectids)

此时,我的训练形状仍然是(10, 121)

之后,我用

重新初始化这4个变量
with open("../data/f1/training.dat", "rb") as f:
    training = np.load(f)
    test_data = np.load(f)
    target = np.load(f)
    projectids = np.load(f)

有形状信息

array(<418326x223957 sparse matrix of type '<type 'numpy.float64'>'
    with 165657096 stored elements in Compressed Sparse Row format>, dtype=object)

这是一个包含一个元素、0维数的数组,因此形状为()。那一项是dtype=object。具体来说,它是一个稀疏数组-尺寸显示在<418...x22...中。

我想问DictVectorizerfit_transform,但这无关紧要。是保存和加载操作改变了值。

我猜你没有加载你刚刚写的文件。


你的np.save(f,training)在dtype objectnp.array中包装稀疏矩阵。这是你看到的加载

training = training.item()

从数组包装器中取出稀疏矩阵。

418326x223957是完整数据集的training的形状,(10, 121)是简化调试集的形状吗?

相关内容

  • 没有找到相关文章