什么是 numpy
或者 pandas
中等同于 R 函数 sweep()
的函数?
详细说明: 在 R 中,假设我们有一个系数向量,例如 beta
(数值类型),和一个数组,例如 data
(20x5 数值类型)。我想将向量叠加到数组的每一行,并乘以相应的元素。然后返回结果为 (20x5) 的数组,我可以使用 sweep()
来实现这一点。
等效的样例 R
代码:
beta <- c(10, 20, 30, 40)
data <- array(1:20,c(5,4))
sweep(data,MARGIN=2,beta,`*`)
#---------------
> data
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> beta
[1] 10 20 30 40
> sweep(data,MARGIN=2,beta,`*`)
[,1] [,2] [,3] [,4]
[1,] 10 120 330 640
[2,] 20 140 360 680
[3,] 30 160 390 720
[4,] 40 180 420 760
[5,] 50 200 450 800
我听说Python中的numpy
和pandas
非常出色,它们似乎有很多类似于R
的命令。使用这些库实现相同功能的最快方法是什么?实际数据有数百万行和约50列。beta
向量当然与数据兼容。
sweep
函数的输入和输出结果可以极大地改善这个问题。 - Paul Hbeta * data
)和使用MARGIN之间的区别。 - Andy Haydenvstack
和例如for i in range(1,6): out = i*array([10, 20, 30, 40])
应该可以解决问题。 - Aleksander Lidtke