我是靠谱客的博主 寒冷蜻蜓,最近开发中收集的这篇文章主要介绍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 – 沿着下三角形numpy数组的每一行翻转非零值...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部