小编ADJ*_*ADJ的帖子

从矩阵到单词列表

我有一个NumPy r by c矩阵的零和一.我有一个c字列表.我想返回一个长度为r的列表,其中每个元素是一个以空格分隔的字符串,仅由那些与该矩阵行中的1匹配的单词组成.这是一个例子:

matrix=np.array([[0,0,1],[1,0,1],[0,1,1]])
words=['python','c++','.net']

output=[]
for row in range(matrix.shape[0]):
    output.append( ' '.join([words[i]  for i in range(matrix.shape[1]) if matrix[row,i]==1]))
Run Code Online (Sandbox Code Playgroud)

什么是Pythonic完成此任务的方法?

谢谢,

G

python string matrix

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

Pandas 按组时间累积总和

我有一个数据框,其中为每个 id 记录 1 个或多个事件。对于每个事件,都会记录 id、度量 x 和日期。像这样的东西:

import pandas as pd
import datetime as dt
import numpy as np
x = range(0, 6)
id = ['a', 'a', 'b', 'a', 'b', 'b']
dates = [dt.datetime(2012, 5, 2),dt.datetime(2012, 4, 2),dt.datetime(2012, 6, 2),
         dt.datetime(2012, 7, 30),dt.datetime(2012, 4, 1),dt.datetime(2012, 5, 9)]

df =pd.DataFrame(np.column_stack((id,x,dates)), columns = ['id', 'x', 'dates'])
Run Code Online (Sandbox Code Playgroud)

我希望能够设置回溯期(即 70 天),并为数据集中的每一行计算该 id 的任何先前事件的 x 累积总和以及所需的回溯(不包括该行的 x)正在执行计算)。最终应该看起来像:

  id  x                dates    want
0  a  0  2012-05-02 00:00:00    1
1  a  1  2012-04-02 00:00:00    0
2 …
Run Code Online (Sandbox Code Playgroud)

python group-by time-series pandas

5
推荐指数
2
解决办法
6746
查看次数

R tcrossprod具有独特的组合

可能有一个版本的tcrossprod实现了这一点,但我无法找到它.从下面的示例中,如果订单无关紧要,如何只获得第一次出现组合的行?即I(1,2)对我来说与(2,1)相同.

a <- c(1,2,3,4)
b <- c(10,5,4,10)
df<- data.frame(a,b)

melt(tcrossprod(df$b,1/df$b))

> melt(tcrossprod(df$b,1/df$b))
   Var1 Var2 value
1     1    1  1.00
2     2    1  0.50
3     3    1  0.40
4     4    1  1.00
5     1    2  2.00
6     2    2  1.00
7     3    2  0.80
8     4    2  2.00
9     1    3  2.50
10    2    3  1.25
11    3    3  1.00
12    4    3  2.50
13    1    4  1.00
14    2    4  0.50
15    3    4  0.40
16    4    4  1.00
Run Code Online (Sandbox Code Playgroud)

r cross-product melt

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

如何保存以提交Python IDE的屏幕输出?

我使用Spyder作为我的Python IDE.在我所做的大部分工作中,我使用编辑器编写代码并一次执行一部分程序.我通常来回走动,改变事物,添加碎片,执行部分......你得到它.有没有办法在执行每段代码后保存Spyder在IDE控制台部分显示的文件?

ide logging python-2.7 spyder anaconda

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

使用scikit从计数数据框开始学习tfidf矢量化器

我有一个pandas数据框,其中包含一系列文档的单词数.我可以申请sklearn.feature_extraction.text.TfidfVectorizer退回一个期限 - 文件矩阵吗?

import pandas as pd

a = [1,2,3,4]
b = [1,3,4,6]
c = [3,4,6,1]

df = pd.DataFrame([a,b,c])
Run Code Online (Sandbox Code Playgroud)

如何在df中获得tfidf版本的计数?

python nlp tf-idf scikit-learn

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

如何终止Python多处理作业?

在我提到的这个问题中,我可以使用多处理成功运行作业,我可以看到所有处理器都在使用中.我该如何解雇这份工作?从终端我运行:

python my_multiprocessor_script.py
Run Code Online (Sandbox Code Playgroud)

然后我打Ctrl+C了杀.

然而,这项工作似乎没有被杀死,我可以看到所有的处理器仍在使用中.我正在运行Red Hat Enterprise Linux Server 6.6版.

python linux redhat multiprocessing python-multiprocessing

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

matplotlib 中的并排 Wordclouds

我正在使用WordCloud包来显示由scikit LDA(潜在狄利克雷分配)生成的单词。对于 LDA 生成的每个主题,我都会有一个图表。我希望能够在网格中绘制所有图表以允许并排可视化。本质上,我有一个函数将 LDA 模型作为输入,以及我想要可视化的 LDA 主题,然后绘制一个 wordcloud:

from wordcloud import WordCloud
import matplotlib.pyplot as plt
SEED=0

def topicWordCloud(model, topicNumber, WCmaxWords,WCwidth, WCheight):
    topic = model.components_[topicNumber]
    tupleList = [(tf_feature_names[i],int(topic[i]/topic.sum()*10000)) for i in range(len(topic))]
    wordcloud = WordCloud(width=WCwidth, height=WCheight, max_words=WCmaxWords, random_state=42).generate_from_frequencies(tupleList)
    plt.figure( figsize=(20,10) )
    plt.imshow(wordcloud)
    plt.axis("off")

topicWordCloud(model=lda, topicNumber=2, WCmaxWords=100,WCwidth=800, WCheight=600)
Run Code Online (Sandbox Code Playgroud)

如何遍历我的所有主题 ( n_topics) 以在网格中可视化所有图表?我在想一些事情:

fig = plt.figure()
for i in range(n_topics):
    plt.subplot(2,1,i+1) 
    #something here
Run Code Online (Sandbox Code Playgroud)

python matplotlib word-cloud lda

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

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

PySpark 中的聚合稀疏向量

我有一个 Hive 表,其中包含与每个文档关联的文本数据和一些元数据。看起来像这样。

from pyspark.ml.feature import Tokenizer
from pyspark.ml.feature import CountVectorizer

df = sc.parallelize([
  ("1", "doc_1", "fruit is good for you"),
  ("2", "doc_2", "you should eat fruit and veggies"),
  ("2", "doc_3", "kids eat fruit but not veggies")
]).toDF(["month","doc_id", "text"])
Run Code Online (Sandbox Code Playgroud)
+-----+------+--------------------+
|month|doc_id|                text|
+-----+------+--------------------+
|    1| doc_1|fruit is good for...|
|    2| doc_2|you should eat fr...|
|    2| doc_3|kids eat fruit bu...|
+-----+------+--------------------+
Run Code Online (Sandbox Code Playgroud)

我想按月数字。到目前为止,我已经采用了 CountVectorizer 方法:

+-----+------+--------------------+
|month|doc_id|                text|
+-----+------+--------------------+
|    1| doc_1|fruit is good for...|
|    2| doc_2|you should eat …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark apache-spark-ml

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

使用ggplot2用丝带绘制两条线

我有一个带有公制v和分类变量t的数据框.我可以将它们绘制成这样的线条

set.seed(42)
v <- runif(20, min=0, max=100)
t <- sample( LETTERS[1:2], 20, replace=TRUE )

df <- data.frame(v,t)

qplot(1:length(v),v,data=df,geom="line",group=t,color=t)
Run Code Online (Sandbox Code Playgroud)

我想在每条线上添加色带.可能有不同的宽度(我将用公式设置)和透明度.我试图用"功能区"替换geom但我收到以下错误:

qplot(1:length(v),v,data=df,geom="ribbon",group=t,color=t)
Error: geom_ribbon requires the following missing aesthetics: ymin, ymax
Run Code Online (Sandbox Code Playgroud)

如何在一个图表中绘制两条线和它们的色带?

r ggplot2 confidence-interval

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