[英]How to convert diameter of matrix to zero in python?
我有一个矩阵,我想在 python 中将直径值转换为零。 你能帮助我吗?
矩阵:
array([[1, 0, 0, ..., 1, 0, 0],
[0, 1, 0, ..., 0, 0, 0],
[0, 0, 1, ..., 0, 0, 0],
...,
[1, 0, 0, ..., 1, 0, 0],
[0, 0, 0, ..., 0, 1, 0],
[0, 0, 0, ..., 0, 0, 1]])
假设您的意思是对角线,请使用 enumerate 遍历列表,然后遍历子列表,并检查索引是否相等(这意味着您在对角线上),然后分配零,否则分配当前值。
mydata = [[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]]
out=[]
for i,l in enumerate(mydata):
n=[]
for j,v in enumerate(l):
if i==j:
n.append(0)
else:
n.append(v)
out.append(n)
for x in out:
print(x)
[0, 2, 3, 4]
[5, 0, 7, 8]
[9, 10, 0, 12]
[13, 14, 15, 0]
如果可能,请避免嵌套循环。
当您使用 numpy 的数组时,您可以使用
np.fill_diagonal(mydata, 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.