Numpy - 声明一个特定的 nx1 数组

问题描述 投票:0回答:4

我在 python 中使用 numpy 来创建一个

nx1
矩阵。我希望矩阵的 1st 元素为
3
2nd
-1
,然后再次为 n-1 元素
-1
,最后为 n 元素
3
元素之间的所有 ,即从元素 3 到元素 n-2 应该是
0
。我画了上述矩阵的图,如下所示:

我对 python 和 numpy 相当陌生,但似乎是管理矩阵的好工具。到目前为止我所尝试的是创建

nx1
数组(赋予
n
一些值)并将其初始化为
0

import numpy as np

n = 100

I = np.arange(n)

matrix = np.row_stack(0*I)

print("\Matrix is \n",matrix)

有什么线索告诉我如何继续吗?或者使用什么例程?

python numpy matrix linear-algebra
4个回答
0
投票

可能最简单的方法就是执行以下操作:

import numpy as np

n = 10
a = np.zeros(n)

a[0] = 3
a[1] = -1
a[len(a)-1] = 3
a[len(a)-2] = -1

>>print(a)
output: [ 3. -1.  0.  0.  0.  0.  0.  0.  -1. 3.]

希望这有帮助;)


0
投票
In [97]: n=10                                                                   
In [98]: arr = np.zeros(n,int)                                                  
In [99]: arr[[0,-1]]=3; arr[[1,-2]]=-1                                          
In [100]: arr                                                                   
Out[100]: array([ 3, -1,  0,  0,  0,  0,  0,  0, -1,  3])

轻松更改为 (n,1):

In [101]: arr[:,None]                                                           
Out[101]: 
array([[ 3],
       [-1],
       [ 0],
       [ 0],
       [ 0],
       [ 0],
       [ 0],
       [ 0],
       [-1],
       [ 3]])

0
投票
N = 100 # you can set to whatever number you want
a = np.zeros((N,1)) # you must specify the dimension as a tuple if you want exactly Nx1 array.
a[0]=3
a[1]=-1
a[-1]=3
a[-2]=-1

-1
投票

我想有效的方法是:

import numpy as np

n = 100

I = np.arange(n)

matrix = np.row_stack(0*I)
matrix[0]=3
matrix[1]=-1
matrix[n-2]=-1
matrix[n-1]=3

print("\Matrix is \n",matrix)

© www.soinside.com 2019 - 2024. All rights reserved.