python - 在不带循环的情况下替换 numpy 数组的每一行中的最大值
问题描述
我有一个像这样的数组,对其进行了重新整形,并且需要将每行中的最大值(所以axis = 1?)替换为0。我不能使用for循环。
x = np.random.uniform(1.0, 21.0, 20)
print("Original array: ", x)
xMatrix = x.reshape(4, 5)
print(xMatrix)
maxNum = np.amax(xMatrix, axis=1)
所以,maxNum 显然只给了我每一行的最大值。但是,如果不简单地遍历数组,我将如何实际替换这些值呢?
解决方案
尝试 np.where 结合 np.isin :
np.where(np.isin(xMatrix,maxNum), 0, xMatrix)
推荐阅读
- kubernetes - Kubernetes 多容器 pod - 每个容器的实例数
- html - 具有不透明度和渐变文本笔画/轮廓的 CSS 渐变文本
- amazon-web-services - 转到 Ingress 上的路径时,端点返回空白页
- azure-ad-b2c - 在 Azure B2C 中的 OutputClaim 中发送枚举文本
- python - 如何使用 glutKeyboardFunc(keyboard) 进行操作?
- kotlin - 将 InputStream 转换为流
- javascript - 有没有办法防止后退按钮覆盖localStorage?
- python - Tkinter - 在扩展窗口大小时更改按钮位置
- javascript - 如何在 React 中对状态更改进行 API 调用?
- python - 从 Tensorflow 2.0 导出 pb 文件以与 C API 一起使用