In [71]: df = DataFrame(np.arange(25).reshape(5,5))
In [72]: df
Out[72]:
0 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 19
4 20 21 22 23 24
यह मास्क ऊपरी त्रिकोण (विकर्ण शामिल हैं)
In [73]: mask = np.ones(df.shape,dtype='bool')
In [74]: mask[np.triu_indices(len(df))] = False
In [75]: mask
Out[75]:
array([[False, False, False, False, False],
[ True, False, False, False, False],
[ True, True, False, False, False],
[ True, True, True, False, False],
[ True, True, True, True, False]], dtype=bool)
अपनी हालत को अनुकरण (> 0.95)
मैं इस सवाल का जवाब भी पता करने के लिए उत्सुक हूँ -
यह फ़ॉर्म आपको परिणाम चाहते
In [77]: df[(df>16)&mask]
Out[77]:
0 1 2 3 4
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN
3 NaN NaN 17 NaN NaN
4 20 21 22 23 NaN
समस्या क्या तुम सच में स्थितीय मूल्यों
In [78]: x = ((df>16)&mask).values.nonzero()
In [79]: zip(x[0],x[1])
Out[79]: [(3, 2), (4, 0), (4, 1), (4, 2), (4, 3)]
यह दिलचस्प है चाहते हैं है। मुझे numpy.diagonal() के बारे में पता है, लेकिन ऐसा लगता है कि इसके नीचे के तत्वों की बजाय केवल विकर्ण पर मान वापस आते हैं .... – svenkatesh