你可以将NumPy数组的一个元素相乘并得到整个数组吗?

时间:2018-01-26 05:25:18

标签: python numpy

我有一个多维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)

}

2 个答案:

答案 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 赋值运算符