小编use*_*497的帖子

删除NULL元素并从R中的嵌套列表中取消列出本地级别列表

假设我有一个列表,说它有三个级别:

tmp =list(list(list(c(2,9,10), NULL), c(1,3,4,6)), 7) 
Run Code Online (Sandbox Code Playgroud)

这会输出

[[1]]
[[1]][[1]] 
[[1]][[1]][[1]]
[1]  2  9 10

[[1]][[1]][[2]]
NULL

[[1]][[2]]
[1] 1 3 4 6

[[2]]
[1] 7
Run Code Online (Sandbox Code Playgroud)

我想删除NULL元素和列表的本地级别.即,嵌套列表tmp只有2个级别,它就变成了

tmp =list(list(c(2,9,10), c(1,3,4,6)), 7). 
Run Code Online (Sandbox Code Playgroud)

也就是说,所需的输出可能如下:

tmp
[[1]]
[[1]][[1]]
[1]  2  9 10

[[1]][[2]]
[1] 1 3 4 6

[[2]]
[1] 7
Run Code Online (Sandbox Code Playgroud)

我试图搜索NULL的索引位置,但没有运气.此外,我不知道如何检测和取消列表列表中包含NULL元素的列表.谢谢!

r

10
推荐指数
1
解决办法
2637
查看次数

Sklearn中的非负矩阵分解

我在大矩阵上应用非负矩阵分解(NMF).基本上NMF方法如下:给定m乘n矩阵A,NMF分解成A = WH,其中W是m乘以d,H是d乘以n.ProjectedGradientNMF方法在Python包Sklearn中实现.我希望算法返回W和H.但它似乎只返回H,而不是W.再次将算法应用于AT(转置)可以给我W.但是,我想避免计算它两次,因为矩阵ix非常大.

如果你能告诉我如何同时获得W和H,那就太棒了!以下是我的代码:

from sklearn.decomposition import ProjectedGradientNMF
import numpy
A = numpy.random.uniform(size = [40, 30])
nmf_model = ProjectedGradientNMF(n_components = 5, init='random', random_state=0)
nmf_model.fit(A)
H = nmf_model.components_.T
Run Code Online (Sandbox Code Playgroud)

python machine-learning matrix scikit-learn

7
推荐指数
1
解决办法
5611
查看次数

当包已经使用现有标题时,如何在R中更改标题?

我正在使用一个叫做混音器的R包.我想用包装制作一些图,但是我自己的情节标题.然而,这些情节已经有了现有的头衔.我尝试设置main = NULL并使用title命令重现标题.但它不起作用....下面是一个例子:

 require("mixer")
 data(macaque)
 mixer(macaque,qmin=8)->xout
 plot(xout, frame = 3, main = "")
 title("Something else")
Run Code Online (Sandbox Code Playgroud)

如果你可以让我知道当一个包已经有一个现有的情节标题时改变情节标题的一般解决方案,那就太棒了!谢谢!

r graph

7
推荐指数
1
解决办法
1069
查看次数

在Python中的稀疏矩阵中按行查找非零条目的快速方法

我试图在稀疏矩阵中按行查找非零项的索引:scipy.sparse.csc_matrix.到目前为止,我正在遍历矩阵中的每一行,并使用

numpy.nonzero()
Run Code Online (Sandbox Code Playgroud)

到每一行获取非零列索引.但是这种方法需要花费一个多小时才能找到每行的非零列条目.有快速的方法吗?谢谢!

python numpy matrix

5
推荐指数
3
解决办法
7402
查看次数

在 R 中制作加权边列表,就像对数据框一样

我有一个包含三列的数据集。

X = c("x", "y", "z", "x", "y", "w")
Y = c("a", "b", "c" , "b", "a", "c")
set.seed(3)
Z = sample(10,6)
dat = data.frame(X, Y, Z)
Run Code Online (Sandbox Code Playgroud)

数据看起来像

 X Y Z
1 x a 2
2 y b 8
3 z c 4
4 x b 3
5 y a 9
6 w c 6
Run Code Online (Sandbox Code Playgroud)

我想将上述数据转换为行为 X、列为 Y、矩阵中的值为 Z 的格式。本质上我想要以下内容:

    a   b    c
x   2   3    0
y   9   8    0
z   0   0    4
w   0   0    6
Run Code Online (Sandbox Code Playgroud)

这有点类似于边列表到邻接矩阵,只是数据矩阵不是方形的。请帮忙。谢谢!

r

4
推荐指数
1
解决办法
142
查看次数

使用 scipy.sparse.linalg 中的 svd 降序排序奇异值

我正在将 SVD 应用于 Python 中的大型稀疏矩阵。我正在使用 scipy.sparse.linalg 包中的 svd。奇异值按升序排序,因此奇异向量与升序奇异值相对应地排列。我想知道是否有一个选项可以按降序输出奇异值,以便奇异向量也与降序奇异值相对应地排列?下面只是一个示例代码:

from scipy.sparse.linalg import svds
from scipy import sparse
X = numpy.random.uniform(size = [40, 20])
X = scipy.sparse.csc_matrix(X)
u, s, vt = svds(X, 10, which = 'LM')
Run Code Online (Sandbox Code Playgroud)

我尝试过sparsesvd python 库。与样本矩阵上的 svd 相比,sparpesvd 的运行时间要长得多。所以我不考虑使用sparsesvd。scipy 中的常规 svd 包不适用于稀疏矩阵。谢谢你!

python scipy sparse-matrix svd

3
推荐指数
1
解决办法
5025
查看次数

R曲线,在轴上显示字符串

我正在根据宿舍号码(4位数)绘制居民人数.房间号码应该是字符串.但是当我使用as.character(RmNum)时,轴仍显示为数字.

meanResidents = c(3, 4, 3, 2, 4, 5)
rmNumber = c(2034, 3043, 4012, 2035, 2022, 3013)
plot(as.character(rmNumber), meanResidents, xlab = as.character(rmNumber))
Run Code Online (Sandbox Code Playgroud)

我希望宿舍号在轴上垂直显示.有人可以帮助我吗?

plot r vertical-text axis-labels

2
推荐指数
1
解决办法
9084
查看次数

在R中由大于1的空格进行strsplit

给定一个字符串,

mystr = "Average student score       88"
Run Code Online (Sandbox Code Playgroud)

如果有超过1个空格,我希望拆分.我希望获得以下内容:

"Average student score" "88"
Run Code Online (Sandbox Code Playgroud)

我搜索过"\ s +"会被任意数量的空格分开.

strsplit(mystr, "\\s+")
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的.在strsplit中是否有任何选项可以根据一定数量的空格(比如空格= k)或空格上的规则(比如空格> 1)来拆分字符串?

r strsplit stringr

2
推荐指数
1
解决办法
1921
查看次数