You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

计算矩阵稀疏度时numpy数组的.nonzero()[0]代表什么含义?

代码含义解答

你提到的ratings.nonzero()[0]里的[0]作用如下:

  • 首先ratings是pivot_table转换得到的二维NumPy数组,对应你提到的行是用户、列是代码仓库的评分矩阵
  • NumPy数组的nonzero()方法返回值是和数组维度长度相等的元组:
    对于二维数组,返回的元组包含2个元素,第一个元素是所有非零元素的「行索引数组」,第二个元素是所有非零元素的「列索引数组」,两个数组的长度完全相等,数值就是整个矩阵的非零元素总个数
  • 这里的[0]是取出元组的第一个元素(行索引数组),再用len()统计长度,就能得到矩阵非零元素的总数量

补充说明:这里把[0]换成[1]运行结果完全一致,因为行索引数组和列索引数组的长度都是非零元素总数,只是作者的个人写法习惯。

你可以用下面的小例子验证逻辑:

import numpy as np
# 模拟2行3列的简化评分矩阵
demo_arr = np.array([[0, 5, 0], [4, 0, 3]])
print(demo_arr.nonzero())
# 输出结果:(array([0, 1, 1]), array([1, 0, 2]))
print(len(demo_arr.nonzero()[0])) # 输出3,对应3个非零元素5、4、3
print(len(demo_arr.nonzero()[1])) # 输出同样为3

内容的提问来源于stack exchange,提问作者Elena Herrero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:06:03