【发布时间】:2021-12-16 07:56:39
【问题描述】:
我有一个代码 sn-p,它通过一个接一个地填充上面的元素然后填充下面的元素来创建一个矩阵(如果上面的元素是x,那么下面的元素是1/x)
n = 4
m = np.ones([n, n])
for i in range(0,n):
for j in range(0,n):
if i < j:
x = input()
m[i, j] = float(x)
m[j, i] = 1 / float(x)
在第二个代码中,我可以一次填充矩阵,但我需要从左上角到右下角逐行填充元素
n = int(input())
entries = list(map(int, input().split()))
matrix = np.array(entries).reshape(n, n)
我的问题是:有什么方法可以像第一个 sn-p 一样首先填充矩阵的上三角形,但只能像第二个 sn-p 一样输入一次列表?
例如
n = 3
输入 = 2 3 4(列表)
Expected output=
[[1. 2. 3. ]
[0.5 1. 4. ]
[0.33333333 0.25 1. ]]
【问题讨论】:
标签: python list numpy loops matrix