【发布时间】:2012-08-25 18:42:59
【问题描述】:
我正在尝试采用以下 R 语句并使用 NumPy 将其转换为 Python:
1 + apply(tmp,1,function(x) length(which(x[1:k] < x[k+1])))
是否有一个 Python 等价于 which()?这里,x是矩阵tmp中的行,k对应另一个矩阵中的列数。
之前尝试过下面的Python代码,收到了Value Error(操作数不能和shape一起广播):
for row in tmp:
print np.where(tmp[tmp[:,range(k)] < tmp[:,k]])
【问题讨论】:
-
您正在编写两次
tmp脚本。您的意思是在循环内使用row吗? -
你的
k来自哪里?你的tmp是什么形状的? -
这个例子没问题,但是这个问题可以扩展到一个多维布尔数组,你希望在其中索引“真”值
-
这是一些相当模糊的 R 代码,用于表示“length(which(...)),我们只需要直接将布尔值
sum(x[1:k] < x[k+1]).