Tôi có một mảng 2D numpy. Một số giá trị trong mảng này là NaN. Tôi muốn thực hiện các hoạt động nhất định bằng cách sử dụng mảng này. Ví dụ, hãy xem xét mảng:
[[ 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.]]
Tôi đang cố gắng lấy từng hàng, từng hàng một, sắp xếp nó theo thứ tự đảo ngược để nhận được tối đa 3 giá trị từ hàng và lấy giá trị trung bình của chúng. Mã tôi đã thử là:
# nparr is a 2D numpy array
for entry in nparr:
sortedentry = sorted(entry, reverse=True)
highest_3_values = sortedentry[:3]
avg_highest_3 = float(sum(highest_3_values)) / 3
Điều này không hoạt động đối với các hàng có chứa NaN. Câu hỏi của tôi là, có cách nào nhanh chóng để chuyển đổi tất cả các NaNgiá trị thành 0 trong mảng 2D numpy để tôi không gặp vấn đề với việc sắp xếp và những thứ khác mà tôi đang cố gắng thực hiện không.
each: map: return isNaN(value) ? 0 : value