import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b=a.copy()
r=[i for i in range(0,a.shape[0]) for j in range(0,a.shape[1]) if j>a.shape[1]-i-1 ]
c=[j for i in range(0,a.shape[0]) for j in range(0,a.shape[1]) if j>a.shape[1]-i-1 ]
a[r,c]=0
print('left',a)
a=b-a
print('right',a)
2条答案
按热度按时间hi3rlvi21#
你可以使用
np.fliplr
来反转元素沿着左右轴的顺序,这将把反对角线变成对角线,然后使用通常的np.triu
和np.tril
。7gcisfzg2#
我不知道是否有直接函数可以实现这一点,但你总是可以依靠列表切片。因此,根据元素是在数组的右边还是左边准备一个行和列的列表,然后将切片数组的值设置为0。数组的反义词可以通过减去第一个和拆分后的数组来取
最后是我的代码