Saya memiliki array numpy 2D. Beberapa nilai dalam array ini adalah NaN
. Saya ingin melakukan operasi tertentu menggunakan larik ini. Misalnya perhatikan array:
[[ 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.]]
Saya mencoba untuk mengambil setiap baris, satu per satu, mengurutkannya dalam urutan terbalik untuk mendapatkan nilai maksimal 3 dari baris dan mengambil rata-ratanya. Kode yang saya coba adalah:
# 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
Ini tidak berfungsi untuk baris yang berisi NaN
. Pertanyaan saya adalah, apakah ada cara cepat untuk mengubah semua NaN
nilai menjadi nol dalam larik numpy 2D sehingga saya tidak memiliki masalah dengan pengurutan dan hal lain yang saya coba lakukan.
each: map: return isNaN(value) ? 0 : value