如何移除字典中二维NumPy数组内的零值?
移除字典中二维NumPy数组的零值实现方法
可以通过遍历字典的每个键值对,对二维数组的每一行筛选非零元素,再重新组合成新数组的方式实现,具体代码如下:
import numpy as np # 原始字典 original_dict = { "a": np.array([[0, 2, 3], [4, 0, 6]]), "b": np.array([[1, 0, 3], [4, 5, 0]]), "c": np.array([[1, 2, 0], [0, 5, 6]]) } # 处理每个数组,移除零值 processed_dict = {} for key, arr in original_dict.items(): # 对数组的每一行筛选出非零元素,再转换为NumPy数组 cleaned_rows = [row[row != 0] for row in arr] processed_dict[key] = np.array(cleaned_rows) # 输出结果 print(processed_dict)
代码说明
- 遍历原始字典的每个键和对应的二维数组
- 对数组的每一行,利用
row != 0生成布尔索引,筛选出该行的非零元素 - 将每行筛选后的结果组成新的列表,再转换为NumPy数组,存入新字典
运行后得到的结果与你期望的输出一致:
{ "a": np.array([[2, 3], [4, 6]]), "b": np.array([[1, 3], [4, 5]]), "c": np.array([[1, 2], [5, 6]]) }
内容的提问来源于stack exchange,提问作者r.carnahan
相关产品推荐
相关产品推荐

