与给定Python numpy矩阵生成代码等效的R语言实现方式是什么
原Python代码功能
原Python代码如下:
import numpy as np a = range(2) b = 14 out = np.mat([[k**i for i in a] for k in range(-b, b+1)])代码逻辑为生成29行2列的矩阵:行对应k从-14到14的所有整数,每行的两个元素分别为
k^0和k^1。
R语言等效实现
有两种常见实现方式,结果和原Python代码完全一致:
- 写法1:更贴合原Python的嵌套循环逻辑,用
outer函数直接生成矩阵
b <- 14 a <- 0:1 # 对应原Python的range(2) k_vals <- seq(-b, b, by = 1) # 对应原Python的range(-b, b+1) out <- outer(k_vals, a, `^`)
- 写法2:更易读的直白写法,直接构造两列再合并为矩阵
b <- 14 k_vals <- seq(-b, b, by = 1) out <- matrix(c(rep(1, length(k_vals)), k_vals), ncol = 2)
注:R原生的matrix类和Python中np.mat生成的矩阵类功能对齐,可直接用于后续矩阵运算,无需额外依赖包。
内容的提问来源于stack exchange,提问作者raghav
相关产品推荐
相关产品推荐

