python - numpy 数组 - 替换某些值

标签 python arrays python-2.7 numpy

我还没有弄清楚 numpy 数组引用。

我有一些数组,其中前两列总是有一些必要的负值,其余列的负值需要用 0 代替。我知道有多种方式to do this .让我感到困惑的部分是如何将其中一种方法与仅对超过 2 的列结合使用。

示例数组:

[[x, y, flow, element1, element2, element3] [x, y, flow, element1, element2, element3] [x, y, flow, element1, element2, element3]]

期望的结果是对于整个数组,任何负值都被替换为 0,除非它们是 x 或 y。

最佳答案

这听起来像你想要的:

subset = array[:, 2:]
subset[subset < 0] = 0

或者作为一个相当难读的单行:

array[:, 2:][array[:, 2:] < 0] = 0

作为一个更完整的例子:

import numpy as np

array = np.random.normal(0, 1, (10, 5))
print array

# Note that "subset" is a view, so modifying it modifies "array"
subset = array[:, 2:]
subset[subset < 0] = 0

print array

关于python - numpy 数组 - 替换某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332408/

相关文章:

javascript - 文档数据库 : How to filter document on array within array?

python - 使用 nltk.download() 下载错误

python - 名称 'DecodeJpeg/contents:0' 指的是一个不存在的张量

python - Zen of Python 在控制台中打印,没有 `import this`

java - 将二维矩阵对角线与中线交换

javascript - 数组文字何时创建?

python - 在 Python 中为 OpenCV BoundryBox 设置自定义 RoI

python - 带有元组键的 msgpack 字典

python - 解析错误,更新 1 行中的多个列

django - 使用 pip install 出现异常