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

Numpy - Declare a specific nx1 array

我在 python 中使用 numpy,以创建 nx1 矩阵。我希望矩阵的 1st 元素是 32nd -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)

关于我如何进行的任何线索?或者使用什么套路?

我想有用的是:

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)

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]])

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

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.]

希望对您有所帮助 ;)