python - Csr 矩阵:如何用 np.nan 而不是 0 替换缺失值?
问题描述
似乎默认csr_matrix
填充缺失值0
。那么如何用 填充缺失值np.nan
呢?
from scipy.sparse import csr_matrix
row = np.array([0, 0, 1, 2, 2, 2])
col = np.array([0, 2, 2, 0, 1, 2])
data = np.array([0, 2, 3, 4, 5, 6])
csr_matrix((data, (row, col)), shape=(3, 3)).toarray()
输出:
array([[0, 0, 2],
[0, 0, 3],
[4, 5, 6]])
预期的:
array([[0, np.nan, 2],
[np.nan, np.nan, 3],
[4, 5, 6]])
解决方案
这是一种解决方法:
from scipy.sparse import csr_matrix
row = np.array([0, 0, 1, 2, 2, 2])
col = np.array([0, 2, 2, 0, 1, 2])
data = np.array([0, 2, 3, 4, 5, 6])
mask = csr_matrix(([1]*len(data), (row, col)), shape=(3, 3)).toarray()
mask[mask==0] = np.nan
csr_matrix((data, (row, col)), shape=(3, 3)).toarray() * mask
推荐阅读
- vba - 带有范围的sql where语句:如何用逗号分隔
- laravel - 数据库通知
- javascript - 将angular-2(typescript)全局变量传递给javascript
- javascript - 使用 D3 和 ThreeJS 基于集线器中心性设置节点大小(球体体积)
- google-cloud-platform - 如何导出 VM 实例的副本?
- javascript - javascript中两个函数的正确算术运算
- azure - 持续集成并将 SSAS 表格部署到 Azure 分析服务
- google-app-engine - Google Cloud 上的 Apache Beam python 模块中的 ELF 标头无效
- python - 如何在 Kivy 中部分显示图像?
- ios - 当创建一个带有框架的惰性按钮时,这是在左上角创建的,为什么会发生这种情况?