我有一个多维NumPy数组,我希望将每个子数组的第一个元素乘以某个数字。如果我创建一个数组并使用切片表示法来获取我想要乘法的元素,它只返回新数组中的那些元素,而不是原始数组中的其余元素。如何将第一个元素相乘并将它们保留在原始数组中?
示例:我这样做
array([ 5, 20])
我得到了这个
array([[ 5, 2, 3],
[20, 5, 6]])
但我想得到这个
o <- 4
N <- 40
set.seed(1001)
for(i in 1:100){
x1 <- runif(N,1,10)
y1 <- 5 + x1
change_idx <- sample((which(x1 <= 2)), o, replace = FALSE)
y1[change_idx] <- rnorm(o, 20, 1)
}
答案 0 :(得分:5)
您需要重新分配结果:
In [8]: arr[:, 0] = arr[:, 0] * 5
In [9]: arr
Out[9]:
array([[ 5, 2, 3],
[20, 5, 6]])
答案 1 :(得分:2)
试试这个:
arr = np.array([[1,2,3],[4,5,6]])
arr[:,0]*=5
好的旧乘法AND 赋值运算符