我有一个非零对称矩阵'matr',即12000X12000.我需要找到R中'matr'中前10000个元素的索引.我写的代码需要很长时间 - 我想知道是否有任何指针可以让它更快.
listk <- numeric(0)
for( i in 1:10000) {
idx <- which(matr == max(matr), arr.ind=T)
if( length(idx) != 0) {
listk <- rbind( listk, idx[1,])
matr[idx[1,1], idx[1,2]] <- 0
matr[idx[2,1], idx[2,2]] <- 0
}
}
Run Code Online (Sandbox Code Playgroud) 我试图列出目录中匹配的所有文件abc_def_[somenumber].json。例如abc_def_001.json可以是一个文件。
import os, re,fnmatch
pattern = 'abc_def_*'
for f in os.listdir('path of folder'):
if fnmatch.fnmatch(f, pattern):
print f
Run Code Online (Sandbox Code Playgroud)
但这并不完全准确,因为它吐出"abc_def_comparison_001.json"。我试过
pattern = 'abc_def_[0-9*]'
Run Code Online (Sandbox Code Playgroud)
但这也不太有效。有任何想法吗?
假设我们有一个 dataframe-df 和一个标记为“A”的列。对于选择匹配一个字符串 -'some_string' 的行,df['A'].str.contains('some_string') 效果很好。
我的问题是,是否有相应的方法传递给包含字符串列表,以便可以获得部分匹配?我可以给它一个字符串列表而不是 'some_string' 吗?我试图避免使用 for 循环和切片数据帧并连接到一个新的数据帧。
假设数据框是
pd.DataFrame(np.array([['cat', 2], ['rat', 5], ['ball', 8],['string', 8]]),columns=['A', 'B']))
Run Code Online (Sandbox Code Playgroud)
和
list =['at','ll','ac']
Run Code Online (Sandbox Code Playgroud)
所以我想选择带有猫、老鼠、球的行。对不起,人为设计的例子。