Tôi có một mảng mà có thể trông như thế này:hàng xóa trong mảng NumPy
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Chú ý rằng một trong những hàng có giá trị zero ở cuối. Tôi muốn xóa bất kỳ hàng nào có chứa số không, 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ố hàng khác nhau mỗi khi được điền và số 0 sẽ được đặt ở các hàng khác nhau mỗi lần.
tôi nhận được số phần tử khác không trong mỗi hàng với dòng mã sau đây:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Đối với các 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 đều là nonzero, trong khi bốn giá trị chỉ ra rằng một trong các giá trị có thể có trong hàng 1 là số không.
Vì vậy, tôi đang cố gắng sử dụng các dòng mã sau đây để tìm và xóa các hàng có 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 đó, mã này dường như không làm gì cả, mặc dù thực hiện nhiều lệnh in cho biết tất cả các biến dường như được điền chính xác vào mã.
Phải có một số cách dễ dàng để chỉ đơn giản là "xóa mọi hàng có chứa giá trị bằng 0".
Có ai có thể cho tôi biết mã nào cần viết để thực hiện việc này không?
một chút đơn giản hơn: p [~ (p == 0) Bất cứ (1)] hoặc rõ ràng hơn cho các hàng: p [~ (p == 0) Bất cứ (1),:] – user333700
@ user333700 - Đó phải là câu trả lời - bạn chắc chắn sẽ nhận được phiếu bầu của tôi! 'any' rõ ràng hơn' sum' trong việc sử dụng này. – mtrw