python - 将 numpy 数组中的一列设置为零

标签 python arrays python-2.7 numpy

我想在不同时间将 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/

相关文章:

python - "assert"可以用来检查函数中的特定异常吗?

python - 通过 pip 安装 psutil (wheel) 作为依赖项时出现问题

python - "No module named ipython"错误尽管已经安装

python - 用python读取UTF-8字符时出错

python - 如何在 Python 中向后添加?

javascript - array.pop()的返回值;

c# - 将 [][] 形式的数组转换为 [,] 的最聪明方法?

java - 创建具有动态长度的整数数组时无法显示数组

python - wxPython:在子面板中填充菜单

python - 如何使用 matplotlib 创建一个非常大的数据集的条形图?