-
小唯快跑啊
您可以翻转数组,获取上三角形,然后将其翻转回来:In [1]: import numpy as npIn [2]: a = np.array([[1,2,3],[4,5,6],[7,8,9]])In [3]: np.triu(a[:, ::-1])[:, ::-1]Out[3]:array([[1, 2, 3], [4, 5, 0], [7, 0, 0]])
-
烙印99
两个问题。首先,np.tril(如其名称所示)给出了下对角线。其次,三角形阵列通常是您所需输出的镜像。我们可以在偷看源代码为np.triu适应其新triu_anti通过的功能np.fliplr:def triu_anti(m, k=0): m = np.asanyarray(m) mask = np.fliplr(np.tri(*m.shape[-2:], k=k-1, dtype=bool)) return np.where(mask, np.zeros(1, m.dtype), m)res = triu_anti([[1,2,3],[4,5,6],[7,8,9]])print(res)# array([[1, 2, 3],# [4, 5, 0],# [7, 0, 0]])
-
凤凰求蛊
使用T两次np.tril(a.T,0).Tarray([[1, 2, 3], [0, 5, 6], [0, 0, 9]])