将NaN值转换为零
- 论坛
- 将NaN值转换为零
18 浏览
将NaN值转换为零
我有一个2D的numpy数组。这个数组中的一些值是NaN
。我想对这个数组进行某些操作。例如,考虑以下数组:
[[ 0. 43. 67. 0. 38.] [ 100. 86. 96. 100. 94.] [ 76. 79. 83. 89. 56.] [ 88. NaN 67. 89. 81.] [ 94. 79. 67. 89. 69.] [ 88. 79. 58. 72. 63.] [ 76. 79. 71. 67. 56.] [ 71. 71. NaN 56. 100.]]
我想逐行处理这个数组,将其按逆序排序以获取每行中的最大3个值,并取它们的平均值。我尝试的代码是:
# nparr是一个2D numpy数组 for entry in nparr: sortedentry = sorted(entry, reverse=True) highest_3_values = sortedentry[:3] avg_highest_3 = float(sum(highest_3_values)) / 3
这对于包含NaN
的行不起作用。我的问题是,是否有一种快速的方法将2D numpy数组中的所有NaN
值转换为零,以便我在排序和其他尝试中没有问题。