Tôi có một mảng có thể trông như thế này:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Lưu ý rằng một trong các hàng có giá trị 0 ở cuối. Tôi muốn xóa bất kỳ hàng nào có chứa số 0, trong khi vẫn giữ bất kỳ hàng nào chứa các giá trị khác 0 trong tất cả các ô.
Nhưng mảng sẽ có số lượng hàng khác nhau mỗi khi nó được điền và các số không sẽ nằm ở các hàng khác nhau mỗi lần.
Tôi nhận được số phần tử khác 0 trong mỗi hàng với dòng mã sau:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Đối với mảng ở trên, NumNonzeroElementsInRows
chứa: [5 4]
Năm chỉ ra rằng tất cả các giá trị có thể có trong hàng 0 là khác không, trong khi bốn chỉ ra rằng một trong những giá trị có thể có trong hàng 1 là số không.
Do đó, tôi đang cố gắng sử dụng các dòng mã sau để tìm và xóa các hàng chứa giá trị bằng không.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Nhưng vì lý do nào đó, đoạn mã này dường như không thực hiện được gì, mặc dù thực hiện rất nhiều lệnh in cho thấy rằng tất cả các biến dường như đang được điền chính xác dẫn đến mã.
Phải có một số cách dễ dàng để chỉ cần "xóa bất kỳ hàng nào chứa giá trị bằng không."
Bất cứ ai có thể chỉ cho tôi những gì mã để viết để thực hiện điều này?
numpy.delete(x, index)
lại không hoạt động.