मेरे पास एक सरणी है जो इस तरह दिख सकती है:
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
इसमें शामिल हैं: [५ ४]
पांच इंगित करते हैं कि पंक्ति 0 में सभी संभावित मान गैर-शून्य हैं, जबकि चार इंगित करते हैं कि पंक्ति 1 में संभावित मूल्यों में से एक शून्य है।
इसलिए, मैं उन पंक्तियों को खोजने और हटाने के लिए कोड की निम्न पंक्तियों का उपयोग करने का प्रयास कर रहा हूं जिनमें शून्य मान हैं।
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
लेकिन किसी कारण से, यह कोड कुछ भी करने के लिए प्रतीत नहीं होता है, भले ही बहुत सारे प्रिंट कमांड्स यह इंगित करते हैं कि सभी चर कोड को सही ढंग से ले जा रहे हैं।
बस "शून्य मान वाले किसी भी पंक्ति को हटाने" के लिए कुछ आसान तरीका होना चाहिए।
क्या कोई मुझे दिखा सकता है कि इसे पूरा करने के लिए क्या कोड लिखना है?
numpy.delete(x, index)
ने काम क्यों नहीं किया