在学习方法Mowgli single cell时,调用包的函数出现这个错误,发现是在包里的判断大于0的以下语句报错
然后我单独进行原始系数大于0的判断
抱同样的错,说明问题就出现在这里
查阅资料知:
scipy.sparse
稀疏矩阵不支持 >=
操作符与0比较。这是因为在稀疏矩阵中进行这种比较是低效的,库建议使用 <
来替代。
例如:
import scipy.sparse as sp
is_non_negative = not sp.csr_matrix(mdata["rna"].X).data.min() < 0
解决方案:
如果要检查稀疏矩阵中的所有元素是否都大于等于0,可以先对稀疏矩阵使用 <
操作符来检查是否有小于0的元素,如果没有,则所有元素都大于等于0。然后我把包里的
(A > 0).all()
替换为了
not A.data.min() < 0
结果成功运行