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

时间:2019-10-14 09:27:32

标签: 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

这是我尝试过的方法,但是这里1适用于所有列而不是一个列:

mat[1:3][1]=1

这是什么问题?

4 个答案:

答案 0 :(得分:2)

有两个问题:

首先,您没有创建所需的矩阵。 np.zeros((0,5))不起作用。您应该改为尝试mat = np.zeros((5,5))

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

mat[1:4,0]=1

答案 1 :(得分:2)

mat = np.zeros((0,5))未创建您需要的矩阵。 正确的方法是

mat = np.zeros((5,5), dtype=int)

答案 2 :(得分:1)

像这样尝试:

mat[1:4, 0] = 1

答案 3 :(得分:0)

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

使用

for list_ in mat[1:4]:
    list_[0]=1