【发布时间】:2018-05-30 10:19:36
【问题描述】:
我想将带有 dtype=object 的 numpy 数组转换为稀疏数组,例如csr_matrix。但是,这失败了。
x = np.array(['a', 'b', 'c'], dtype=object)
csr_matrix(x) # This fails
csc_matrix(x) # This fails
对稀疏矩阵的两次调用都会产生以下错误:
TypeError:不支持类型转换:(dtype('O'),)
其实,甚至调用
csr_matrix(['a', 'b', 'c'])
产生相同的错误。稀疏矩阵不支持object dtypes吗?
【问题讨论】:
-
稀疏矩阵可以包含非数字元素吗?
-
什么是对象 dtype 中的
zero元素?csr数学不适用于对象。它是用一组有限的数字类型编译的。你希望用这样的矩阵做什么?连字符串都不起作用。 -
好吧,我希望
None是zero元素。但是,只使用数字类型确实有意义。
标签: python arrays numpy matrix scipy