Python 用从一个索引到另一个索引的值填充numpy矩阵
我的问题是用从一个索引到另一个索引的值填充一个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
> 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;)