如何用常量替换 ndarray 中每一行的最后一个元素(或任何元素)?
How to replace last element (or any element) of every row in an ndarray with a constant?
我想用常量替换 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]])
我想用常量替换 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]])