S.A*_*EEN 1 python arrays numpy python-2.7
我想在不同的时间将 numpy 数组中的一列设置为零,换句话说,我有一个M大小为 5000x500 的numpy 数组。当我输入 shape 命令时,结果是 (5000,500),我认为 5000 是行,500 是列
shape(M)
(5000,500)
Run Code Online (Sandbox Code Playgroud)
但是当我想访问像第一列这样的一列时的问题
Mcol=M[:][0]
Run Code Online (Sandbox Code Playgroud)
然后我用新矩阵再次按形状检查 Mcol
shape(Mcol)
(500,)
Run Code Online (Sandbox Code Playgroud)
我预计结果将是 (5000,),因为第一个有 5000 行。即使更改了操作,结果也是一样的
shape(M)
(5000,500)
Mcol=M[0][:]
shape(Mcol)
(500,)
Run Code Online (Sandbox Code Playgroud)
任何帮助请解释我的代码中发生的事情,以及以下操作是否正确将一列设置为零
M[:][0]=0
Run Code Online (Sandbox Code Playgroud)
你这样做:
M[:][0] = 0
Run Code Online (Sandbox Code Playgroud)
但你应该这样做:
M[:,0] = 0
Run Code Online (Sandbox Code Playgroud)
第一个是错误的,因为M[:]只给你整个数组,比如M. 然后[0]给你第一行。
同样,也M[0][:]为您提供第一行,因为再次[:]无效。