python - 如何遍历矩阵并计算零项值?
问题描述
sample collection =
[['', 'test1.txt', 'test2.txt', 'test3.txt', 'test4.txt'],
['apple', 1, 1, 1, 1],
['banana', 1, 1, 0, 0],
['lemon', 1, 0, 2, 1]]
在准备 tf-idf 计算时,我想收集每一行的“命中”数量,也就是不为零的次数。
我尝试了以下方法,但我被卡住了:
def n_calc(frequency_matrix):
non_zero_term_frequencies = []
for list_ in sample_collection:
for value in list_:
if value != 0.0:
non_zero_term_frequencies += 1
else:
pass
idf_calc(sample_collection)
所需的输出:
non_zero_term_frequencies: [4, 2, 3]
解决方案
使用列表理解,这应该有效:
counts = [
sum(1 if value else 0 for value in line[1:]) for line in collection[1:]
]
print(counts)
>>> [4, 2, 3]
推荐阅读
- html - 将hello world添加到cpanel
- c# - 在尺寸减小时防止图像尺寸增大
- java - 将 Java 对象传递给 Retrofit 无法正确处理
- batch-file - 在批处理文件中使用 WinSCP 从 SFTP 服务器获取具有最新日期的文件
- python-3.x - 我怎样才能让一个方法使用其他方法的变量?
- sql - 如何从相关数据库表中准备 JSON 对象和数组?
- powershell - 带附加的设置 Acl
- amazon-web-services - 在 s3 中上传 400k 文件怎么会有 500 万条消息计数
- javascript - 带有 puppeteer 的 await fs writefile 不会等到文件写入后再继续事件循环
- python - geotif 光栅中的坐标参考系转换