我想在不同时间将numpy数组中的列设置为零,换句话说,我有大小为5000x500的numpy数组M
。当我输入shape命令时,结果是(5000,500),我认为5000是行,500是列
shape(M)
(5000,500)
但是当我想像第一列一样访问一个列时出现问题
Mcol=M[:][0]
然后我用新的矩阵
Mcol
再次按形状检查shape(Mcol)
(500,)
我希望结果将是(5000),因为第一个有5000行。即使更改操作,结果也相同
shape(M)
(5000,500)
Mcol=M[0][:]
shape(Mcol)
(500,)
任何帮助请解释我的代码中发生了什么,以及以下操作是否正确,以将一列设置为零
M[:][0]=0
最佳答案
您正在执行此操作:
M[:][0] = 0
但是您应该这样做:
M[:,0] = 0
第一个是错误的,因为
M[:]
只是为您提供了整个数组,例如M
。然后[0]
给出第一行。同样,
M[0][:]
也会为您提供第一行,因为[:]
仍然无效。关于python - 将numpy数组中的列设置为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37251992/