我的问题是用从索引到另一个索引的值填充一个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
这是什么问题?
答案 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