我想在不同时间将 numpy 数组中的一列设置为零,换句话说,我有大小为 5000x500 的 numpy 数组 M
。当我输入形状命令时,结果是 (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/