我是靠谱客的博主 寒冷蜻蜓,这篇文章主要介绍python倒三角形每行奇数个_python – 沿着下三角形numpy数组的每一行翻转非零值...,现在分享给大家,希望可以做个参考。

这个怎么样:

# row, column indices of the lower triangle of B

r, c = np.tril_indices_from(B)

# flip the column indices by subtracting them from r, which is equal to the number

# of nonzero elements in each row minus one

B[r, c] = B[r, r - c]

print(repr(B))

# array([[ 1. , 0. , 0. , 0. ],

# [ 0.75, 0.25, 0. , 0. ],

# [ 0.7 , 0.2 , 0.1 , 0. ],

# [ 0.1 , 0.4 , 0.3 , 0.2 ]])

相同的方法将推广到由多个下三角形子矩阵组成的任意N维数组:

# creates a (200, 20, 4, 4) array consisting of tiled copies of B

B2 = np.tile(B[None, None, ...], (200, 20, 1, 1))

print(repr(B2[100, 10]))

# array([[ 1. , 0. , 0. , 0. ],

# [ 0.25, 0.75, 0. , 0. ],

# [ 0.1 , 0.2 , 0.7 , 0. ],

# [ 0.2 , 0.3 , 0.4 , 0.1 ]])

r, c = np.tril_indices_from(B2[0, 0])

B2[:, :, r, c] = B2[:, :, r, r - c]

print(repr(B2[100, 10]))

# array([[ 1. , 0. , 0. , 0. ],

# [ 0.75, 0.25, 0. , 0. ],

# [ 0.7 , 0.2 , 0.1 , 0. ],

# [ 0.1 , 0.4 , 0.3 , 0.2 ]])

对于上三角矩阵,您可以简单地从c中减去r,例如:

r, c = np.triu_indices_from(B.T)

B.T[r, c] = B.T[c - r, c]

最后

以上就是寒冷蜻蜓最近收集整理的关于python倒三角形每行奇数个_python – 沿着下三角形numpy数组的每一行翻转非零值...的全部内容,更多相关python倒三角形每行奇数个_python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(133)

评论列表共有 0 条评论

立即
投稿
返回
顶部