我还没有弄清楚 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/