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 NaN
giá 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