python - 如何用常量替换 ndarray 中每一行的最后一个元素(或任何元素)?
问题描述
我想用常量替换 ndarray 中每一行的最后一个元素。目前我可以通过使用循环来解决这个问题,但我正在寻找一个优雅的解决方案。最好使用numpy
函数。
例如我有一个 ndarray :
[1 3 4 5]
[4 2 4 1]
[3 2 7 3]
[7 9 4 3]
[6 9 7 2]
这是我想要的结果,每行的最后一个元素都替换为 10
[1 3 4 10]
[4 2 4 10]
[3 2 7 10]
[7 9 4 10]
[6 9 7 10]
解决方案
对列使用 numpy 索引
import numpy as np
arr = np.array([[1,3,4,5],
[4,2,4,1],
[3,2,7,3],
[7,9,4,3],
[6,9,7,2]])
arr[:,-1]=10
arr
array([[ 1, 3, 4, 10],
[ 4, 2, 4, 10],
[ 3, 2, 7, 10],
[ 7, 9, 4, 10],
[ 6, 9, 7, 10]])
推荐阅读
- regression - 我的 mae 函数与 sklearn 的函数相差 10^-16 倍。为什么?
- google-apps-script - 我可以创建单元格 A1 包含 API 密钥的工作表,然后在其他工作表上的脚本中引用该值吗?
- vuetify.js - 针对特定屏幕尺寸隐藏的 Vuetify Vspacer
- python - Google Speech to text Error Raspberry Pi - “模块对象没有属性 RecognitionAudio”
- python - 构造:Python - 不换行打印
- firebase - Cloud_firestore 迁移问题:状态不佳:DocumentSnapshotPlatform 中不存在字段
- angular - ngTemplateOutlet :事件处理程序失败
- reactjs - Next.js + eslint:无法解析模块“fs/promises”的路径
- reactjs - 在 React 中将 div 覆盖在图像上
- python - 如何在数据框中的第一个特定单词之后找到第二个特定单词