Saya memiliki array yang mungkin terlihat seperti ini:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Perhatikan bahwa salah satu baris memiliki nilai nol di bagian akhir. Saya ingin menghapus baris apa pun yang berisi nol, sambil mempertahankan baris apa pun yang berisi nilai bukan nol di semua sel.
Tetapi array akan memiliki jumlah baris yang berbeda setiap kali diisi, dan angka nol akan ditempatkan di baris yang berbeda setiap saat.
Saya mendapatkan jumlah elemen bukan nol di setiap baris dengan baris kode berikut:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Untuk larik di atas, NumNonzeroElementsInRows
berisi: [5 4]
Lima menunjukkan bahwa semua nilai yang mungkin di baris 0 adalah bukan nol, sedangkan empat menunjukkan bahwa salah satu nilai yang mungkin di baris 1 adalah nol.
Oleh karena itu, saya mencoba menggunakan baris kode berikut untuk menemukan dan menghapus baris yang berisi nilai nol.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Tetapi untuk beberapa alasan, kode ini tampaknya tidak melakukan apa-apa, meskipun melakukan banyak perintah cetak menunjukkan bahwa semua variabel tampaknya terisi dengan benar mengarah ke kode.
Pasti ada cara mudah untuk hanya "menghapus baris apa pun yang berisi nilai nol".
Adakah yang bisa menunjukkan kepada saya kode apa yang harus ditulis untuk mencapai ini?
numpy.delete(x, index)
saja tidak berhasil.