首先,我希望能够指定一个值n,这会导致生成一个特定的nxn矩阵: 为此,我使用了代码:
n = __
np.eye (n)
这将生成指定维度的单位矩阵n。 但是,我不想精确地创建单位矩阵。相反,我想创建nxn矩阵,其条目等于特定条目的列号。
我可以使用np.eye(n)作为解决问题的基础吗?
例如,如果我设置n = 3,我希望我的代码形成:
[1 , 2 , 3]
[1 , 2 , 3]
[1, 2 , 3]
谢谢
答案 0 :(得分:0)
您可以使用np.arange生成行,然后使用以下表示法重复它:
def matrix(n):
row = np.arange(1,n+1)
return np.array([row,]*n)
[row,]表示法会添加我们的额外维度,然后我们将其乘以n以获得新维度的大小。
我想我可以看到你使用np.eye(n)得到了什么,但我会改用np.ones():
def matrix(n):
row = np.arange(1,n+1)
return np.ones((3,3))*row
所以我们只是将自然数字序列乘以3x3数组,以得到重复的行。
答案 1 :(得分:0)
有几种方法可以解决您的问题。由于您想使用np.eye
,可能以下解决方案可能有所帮助。
import numpy as np
def matrix(n):
x = np.eye(n)
for i in range(n):
x[i] = i + 1
return x.T
def main():
n=3
print(matrix(n))
if __name__ == '__main__':
main()
<强>输出强>
[[ 1. 2. 3.]
[ 1. 2. 3.]
[ 1. 2. 3.]]