有没有办法在我的lapply()函数中获取列表索引名称?
n = names(mylist)
lapply(mylist, function(list.elem) { cat("What is the name of this list element?\n" })
Run Code Online (Sandbox Code Playgroud)
我之前询问是否可以在lapply()返回列表中保留索引名称,但我仍然不知道是否有一种简单的方法来获取自定义函数中的每个元素名称.我想避免在名称本身上调用lapply,我宁愿在函数参数中获取名称.
我有一个2维NumPy数组.我知道如何获得轴上的最大值:
>>> a = array([[1,2,3],[4,3,1]])
>>> amax(a,axis=0)
array([4, 3, 3])
Run Code Online (Sandbox Code Playgroud)
如何获得最大元素的索引?所以我想作为输出array([1,1,0])
a = [1, 2, 3]
a[-1] += a.pop()
Run Code Online (Sandbox Code Playgroud)
这导致了[1, 6]
.
a = [1, 2, 3]
a[0] += a.pop()
Run Code Online (Sandbox Code Playgroud)
这导致了[4, 2]
.什么评估顺序给出了这两个结果?
我正在尝试将函数应用于大型data.table中的一组列,而不是单独引用每个列.
a <- data.table(
a=as.character(rnorm(5)),
b=as.character(rnorm(5)),
c=as.character(rnorm(5)),
d=as.character(rnorm(5))
)
b <- c('a','b','c','d')
Run Code Online (Sandbox Code Playgroud)
以上MWE,这个:
a[,b=as.numeric(b),with=F]
Run Code Online (Sandbox Code Playgroud)
工作,但这:
a[,b[2:3]:=data.table(as.numeric(b[2:3])),with=F]
Run Code Online (Sandbox Code Playgroud)
不起作用.将as.numeric
函数应用于第2列和第3列的正确方法是什么,a
而不单独引用它们.
(在实际的数据集中有几十列,所以这是不切实际的)
我对表上的索引有疑问,我把它放在Stack Overflow上.我有我的答案,但有人更改了字indices
说indexes
.
我们知道复数Index
是Indices
,但我们也知道几乎每个人都喜欢"错误"这个词.
这样的其他"错误"术语究竟应该是什么,但正在超越他们的"正确"同行?
我试图采用以下R语句并使用NumPy将其转换为Python:
1 + apply(tmp,1,function(x) length(which(x[1:k] < x[k+1])))
Run Code Online (Sandbox Code Playgroud)
是否有Python等效于哪个()?这里,x是矩阵tmp中的行,k对应于另一个矩阵中的列数.
以前,我尝试了以下Python代码,并收到了值错误(操作数无法与形状一起广播):
for row in tmp:
print np.where(tmp[tmp[:,range(k)] < tmp[:,k]])
Run Code Online (Sandbox Code Playgroud) 我想做这样的事情.
假设我们有一个张量A.
A = [[1,0],[0,4]]
Run Code Online (Sandbox Code Playgroud)
我希望从中获得非零值及其指数.
Nonzero values: [1,4]
Nonzero indices: [[0,0],[1,1]]
Run Code Online (Sandbox Code Playgroud)
Numpy也有类似的操作.根据非零指数
np.flatnonzero(A)
,在展平的A.
x.ravel()[np.flatnonzero(x)]
extract元素中返回非零的索引.
这是这些操作的链接.
我怎样才能在Tensorflow中使用python执行上面的Numpy操作?
(矩阵是否扁平化并不重要.)
鉴于以下向量,
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)
我需要识别其元素> = 4的"a"的索引,如下所示:
idx = [3, 4, 5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)
"idx"中的信息将用于删除另一个列表X中的元素(X具有与"a"相同数量的元素):
del X[idx] #idx is used to delete these elements in X. But so far isn't working.
Run Code Online (Sandbox Code Playgroud)
我听说numpy可能会有所帮助.有任何想法吗?谢谢!
我有一个tbl_df我想要group_by(u, v)
观察的每个不同的整数组合(u, v)
.
编辑:通过添加group_indices()
回dplyr 0.4.0解决了这个问题
a)然后我想为每个不同的组分配一些任意的不同数字标签= 1,2,3 ......例如组合(u,v)==(2,3)可以得到标签1,(1,3)可以得到2,依此类推.如何使用一个mutate()
,没有三步总结和自我加入?
dplyr有一个整洁的功能n()
,但是,让元素的数目之内它的组,而不是整体的组的数目.在data.table
这将简单地被称为.GRP
.
b)实际上我真正想要分配字符串/字符标签('A','B',...).但是按整数编号组是很好的,因为我可以使用integer_to_label(i)
如下.除非有一个聪明的方法来合并这两个?但不要冒这个角色.
set.seed(1234)
# Helper fn for mapping integer 1..26 to character label
integer_to_label <- function(i) { substr("ABCDEFGHIJKLMNOPQRSTUVWXYZ",i,i) }
df <- tbl_df(data.frame(u=sample.int(3,10,replace=T), v=sample.int(4,10,replace=T)))
# Want to label/number each distinct group of unique (u,v) combinations
df %>% group_by(u,v) %>% mutate(label = n()) # WRONG: n() is number of element …
Run Code Online (Sandbox Code Playgroud) 我想做一个numpy.array的第k个对角线的算术.我需要那些指数.例如,类似于:
>>> a = numpy.eye(2)
>>> a[numpy.diag_indices(a, k=-1)] = 5
>>> a
array([[ 1., 0.],
[ 5., 1.]])
Run Code Online (Sandbox Code Playgroud)
不幸的是,diag_indices只返回包含主对角线的索引,所以在我正在做的那一刻:
a += numpy.diag([5], -1)
Run Code Online (Sandbox Code Playgroud)
但这似乎不太好或不健全.:-)
numpy有没有办法获得除主要对角线以外的指数?