【发布时间】:2019-01-18 04:39:55
【问题描述】:
我希望创建一个 NxN numpy 数组,其中仅填充主对角线上方的所有内容。
它的填充方式是主对角线(k=0)用gamma**0填充,k=1对角线用gamma**1填充,k=2对角线用gamma**2填充等等...
gamma = 0.9
dim = 4
M = np.zeros((dim,dim))
for i in range(dim)[::-1]:
M += np.diagflat([gamma**(dim-i-1)]*(i+1),dim-i-1)
print(M)
这正确给出了
array([[ 1. , 0.9 , 0.81 , 0.729],
[ 0. , 1. , 0.9 , 0.81 ],
[ 0. , 0. , 1. , 0.9 ],
[ 0. , 0. , 0. , 1. ]])
我想问是否有任何更简单或优雅的方式来处理这个或不同的东西。我将经常处理多维数组,我希望从不同的工具和方法中获得灵感。
【问题讨论】:
标签: python numpy matrix multidimensional-array