Вы можете использовать numpy матрицы здания функции, такие как numpy.triu (верхний треугольник) или numpy.tril (нижний треугольник) для возвратакопия матрицы с обнуленными элементами выше или ниже k-й диагонали.
Если, с другой стороны, вас интересуют только значения выше или ниже диагонали (без копии матрицы), вы можете просто использовать numpy.triu_indices и numpy.tril_indices , как указано ниже:
upper_index = np.triu_indices(n=3, k=1)
, где n
- размер массивов, для которых возвращаемые индексы будут действительными, и k
диагональное смещение.
и вернуть индексы для треугольника. Возвращенный кортеж содержит два массива, каждый с индексами по одному измерению массива:
(array([0, 0, 1], dtype=int64), array([1, 2, 2], dtype=int64))
теперь вы можете использовать индексы, полученные в качестве индексов вашего массива, и вы получите:
a[upper_index]
и дает:
array([[5, 0, 4],
[0, 0, 5],
[0, 8, 7]])
Аналогично вы можете найти деталь под диагональю, используя numpy.tril_indices
.