У мене є масив, який може виглядати так:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Зверніть увагу, що один із рядків має нульове значення в кінці. Я хочу видалити будь-який рядок, що містить нуль, зберігаючи при цьому будь-який рядок, що містить ненульові значення у всіх комірках.
Але масив матиме різну кількість рядків кожного разу, коли його заповнюватимуть, і нулі будуть розташовуватися в різних рядках кожного разу.
Я отримую кількість ненульових елементів у кожному рядку з таким рядком коду:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Для наведеного вище масиву NumNonzeroElementsInRows
міститься: [5 4]
П'ять означає, що всі можливі значення в рядку 0 ненульові, тоді як чотири означають, що одне з можливих значень у рядку 1 є нулем.
Тому я намагаюся використовувати наступні рядки коду для пошуку та видалення рядків, що містять нульові значення.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Але з якихось причин цей код, здається, нічого не робить, хоча виконання багатьох команд друку вказує на те, що всі змінні, здається, правильно заповнюються, ведучи до коду.
Повинен бути простий спосіб просто "видалити будь-який рядок, що містить нульове значення".
Хто-небудь може показати мені, який код написати для цього?
numpy.delete(x, index)
не спрацював.