小编Tim*_*rth的帖子

在Pandas DataFrame中反转列顺序的大O复杂性是什么?

所以假设我在pandas中有一个DataFrame,其中包含am行和n列.我们还要说我想颠倒列的顺序,可以使用以下代码完成:

df_reversed = df[df.columns[::-1]]
Run Code Online (Sandbox Code Playgroud)

这项行动的大O复杂性是什么?我假设这将取决于列数,但它还取决于行数?

python algorithm big-o numpy pandas

15
推荐指数
1
解决办法
576
查看次数

迭代数组名称的数组,将每个数组扩展为其成员

我想创建一个由字符串组成的子数组数组,并为主数组中的每个子数组一次获取所有子数组值。

例如,我希望"str1" "str2"第一次打印出来,但实际上打印出来了"sub1"

#!/bin/bash
declare -a arr=(sub1 sub2)
declare -a sub1=("str1" "str2")
declare -a sub2=("str3" "str4")

for item in "${arr[@]}"; do
  echo $item
done 
Run Code Online (Sandbox Code Playgroud)

我想要这种行为,以便我以后可以调用脚本并传递"str1" "str2"给采用两个值的参数。然后我想再次运行脚本"str3" "str4"

bash

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

如何在 Scikit-learn 中手工设计 TfidfVectorizer 的功能?

我正在尝试按关键字对文档进行聚类。我正在使用以下代码来制作tdidf-matrix

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer(max_df=.8, max_features=1000,
                             min_df=0.07, stop_words='english',
                             use_idf=True, tokenizer=tokenize_and_stem, 
                             ngram_range=(1,2))

tfidf_matrix = tfidf_vectorizer.fit_transform(documents)
Run Code Online (Sandbox Code Playgroud)

print(tfidf_matrix.shape) 返回(567, 209),这意味着有 567 个文档,每个文档都有 scikit-learn TdidfVectorizer 检测到的 209 个特征词的某种混合。

现在,我曾经terms = tfidf_vectorizer.get_feature_names()获得术语列表。跑步print(len(terms))给予209

其中许多单词对于任务来说是不必要的,并且它们会给聚类增加噪音。我手动浏览了该列表并提取了有意义的功能名称,从而生成了一个新terms列表。现在,跑步print(len(terms))可以给67

然而,运行tfidf_vectorizer.fit_transform(documents)仍然给出 的形状(567, 209),这意味着该fit_transform(documents)函数仍然使用 209 个术语的嘈杂列表,而不是手动选择的 67 个术语列表。

如何tfidf_vectorizer.fit_transform(documents)使用 67 个手动选择的术语列表来运行该函数?我在想,也许这需要我向我的机器上的 Scikit-Learn 包添加至少一项功能,对吗?

任何帮助是极大的赞赏。谢谢!

python nlp scikit-learn

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

如何在html上使用lxml获取属性值

我有一些 HTML,我想使用 Python 通过 lxml 进行解析。页面上有许多元素,每个元素代表一张海报。我想获取每个发帖者的 ID,这样我就可以从发帖者的页面上抓取一条信息。目前海报的 id 存储在 id 属性中,因此我想使用 lxml 来获取该属性的值。

例如:

<div onclick="showDetail(9202)">               
    <div class="maincard narrower Poster" id="maincard_9202"> </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想从 id 属性中获取“maincard_9202”,这样我就可以使用正则表达式来获取 9202。从那里,我可以使用这个值直接访问海报的页面,因为我知道 url 重定向模式是这样的从

https://nips.cc/Conferences/2017/Schedule?type=海报(当前页面)至 https://nips.cc/Conferences/2017/Schedule?showEvent=9202(海报页面)

我试图使用以下代码:

from lxml import html
import requests
page = requests.get('https://nips.cc/Conferences/2017/Schedule?type=Poster')
tree = html.fromstring(page.content)
paper_numbers = tree.xpath('//div[@onclick]/id/')
Run Code Online (Sandbox Code Playgroud)

但这会返回一个空列表。

在这种情况下如何获取属性值?

html python lxml

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

标签 统计

python ×3

algorithm ×1

bash ×1

big-o ×1

html ×1

lxml ×1

nlp ×1

numpy ×1

pandas ×1

scikit-learn ×1