Python 用从一个索引到另一个索引的值填充numpy矩阵

Python 用从一个索引到另一个索引的值填充numpy矩阵,python,arrays,numpy,Python,Arrays,Numpy,我的问题是用从一个索引到另一个索引的值填充一个numpy矩阵 例如,我有一个矩阵: > mat = np.zeros((0,5)) > mat 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 例如,假设我想在第一列的第1行到第3行填充mat,值为:1,因此它看起来如下所示: > mat 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0

我的问题是用从一个索引到另一个索引的值填充一个numpy矩阵

例如,我有一个矩阵:

> mat = np.zeros((0,5))

> mat
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0
  0 0 0 0 0
例如,假设我想在第一列的第1行到第3行填充mat,值为:1,因此它看起来如下所示:

> mat
  0 0 0 0 0
  1 0 0 0 0
  1 0 0 0 0
  1 0 0 0 0
  0 0 0 0 0
以下是我尝试过的,但这里1应用于所有列,而不是一列:

mat[1:3][1]=1
这里有什么问题?

像这样试试:

mat[1:4, 0] = 1
试着这样做:

mat[1:4, 0] = 1
有两个问题:

首先,您不需要创建所需的矩阵<代码>np。零((0,5))将不起作用。您应该尝试使用
mat=np.zeros((5,5))

另一个问题是访问创建的矩阵。要访问从1(含1)到3(含3)的行的第0个元素,您需要调用:

mat[1:4,0]=1
有两个问题:

首先,您不需要创建所需的矩阵<代码>np。零((0,5))将不起作用。您应该尝试使用
mat=np.zeros((5,5))

另一个问题是访问创建的矩阵。要访问从1(含1)到3(含3)的行的第0个元素,您需要调用:

mat[1:4,0]=1
mat=np。零((0,5))
并没有创建您需要的矩阵。 正确的方法是

mat=np。零((5,5),dtype=int)
mat=np。零((0,5))
并没有创建您需要的矩阵。 正确的方法是


mat=np。零((5,5),dtype=int)
mat[1:3][1]
是一个列表。您不想将其替换为整数值

使用


mat[1:3][1]
是一个列表。您不想将其替换为整数值

使用


看看mat[1:3]和mat[1:3][1]。似乎,您希望
mat[1:4,0]=1
认为数组从位置0开始,而不是1;)看看mat[1:3]和mat[1:3][1]。似乎,您希望
mat[1:4,0]=1
认为数组从位置0开始,而不是1;)