小编Tim*_*Tim的帖子

Python替代R Markdown

与R合作的人无疑熟悉R降价包.

我是一个生动的python用户,并使用Mistune将markdown转换为html页面.它还支持代码突出显示和mathjax以在html中嵌入乳胶公式.但是缺少一种功能.

R markdown可以内联执行R代码(并将结果呈现为html)或内联呈现图形.这节省了时间并使文档可维护,因为您不需要手动准备该功能的输出或手动准备和保存图形,因为它是动态呈现的.

在python中是否存在这样的可能性或库,可能与Mistune结合?

html python markdown r mathjax

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

在模板中显示存储为二进制blob的图像

我有一个模型,图像存储为二进制blob.我想在模板中显示此图像以及有关该对象的其他数据.由于图像不是单独的文件,我无法弄清楚如何显示它.我已尝试设置标题,或使用send_filerender_template,但我要么不获取图像,要么获取图像而不是模板的其余部分.如何在模板中将二进制blob显示为图像?

class A(ndb.Model):
    id= ndb.IntegerProperty()
    x= ndb.StringProperty()
    y= ndb.StringProperty()
    image = ndb.BlobProperty()
Run Code Online (Sandbox Code Playgroud)

python google-app-engine jinja2 flask flask-restful

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

跳过功能,如果它需要太长时间

在Java中,我有一个以某种方式处理文本文件的函数.但是,如果花费太多时间,该过程很可能对该文本文件无用(无论原因是什么),我想跳过它.此外,如果过程耗时太长,它也会占用太多内存.我试图用这种方式解决它,但它不起作用:

for (int i = 0; i<docs.size(); i++){
    try{
        docs.get(i).getAnaphora();
        }
    catch (Exception e){
        System.err.println(e);
    }
 }
Run Code Online (Sandbox Code Playgroud)

where docs只是List目录中的一个文件.通常我必须手动停止代码,因为它"卡在"特定文件(取决于该文件的内容).

有没有办法测量该函数调用的时间,并告诉Java跳过该函数所需的文件,比如10秒?

编辑
在拼凑了几个不同的答案后,我想出了这个解决方案,它工作正常.也许其他人也可以使用这个想法.

首先创建一个实现Runable的类(这样你可以根据需要将参数传递给Thread):

public class CustomRunnable implements Runnable {

    Object argument;

    public CustomRunnable (Object argument){
        this.argument = argument;
}

    @Override
    public void run() {
        argument.doFunction();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在main类中使用此代码来监视函数(argument.doFunction())的时间,如果需要很长时间则退出:

Thread thread;
for (int i = 0; i<someObjectList.size(); i++){          
    thread = new Thread(new CustomRunnable(someObjectList.get(i)));
    thread.start();
    long endTimeMillis = System.currentTimeMillis() + 20000;
    while (thread.isAlive()) {
        if …
Run Code Online (Sandbox Code Playgroud)

java multithreading timer function-call

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

在每行中获取不同的列

我想从矩阵的每一行中得到一个不同的列.例如:

A = [1,2;1,4;5,2]
B = [2;2;1]
Run Code Online (Sandbox Code Playgroud)

输出应该产生:

out = [2;4;5]
Run Code Online (Sandbox Code Playgroud)

所以简而言之:A是矩阵,并且B每行的列数都有索引.如何在不使用循环的情况下执行此操作(如果可能)?

matlab row matrix

7
推荐指数
2
解决办法
2793
查看次数

Django/python如何从对象列表中获取id的列表

如果我有一些查询获取的对象列表(在这种情况下是Django模型).

friends = Friend.objects.friends(user1)
Run Code Online (Sandbox Code Playgroud)

如何获取ID列表,以便我可以使用它来搜索其他模型,如下所示:

items = Item.objects.get(pk__in=friends_ids).order_by('date')
Run Code Online (Sandbox Code Playgroud)

我很确定lambda表达式应该能够做到但我无法弄清楚...

python django list django-models python-3.x

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

Spark数据帧中的序列

我在Spark中有数据框.看起来像这样:

+-------+----------+-------+
|  value|     group|     ts|
+-------+----------+-------+
|      A|         X|      1|
|      B|         X|      2|
|      B|         X|      3|
|      D|         X|      4|
|      E|         X|      5|
|      A|         Y|      1|
|      C|         Y|      2|
+-------+----------+-------+
Run Code Online (Sandbox Code Playgroud)

Endgoal:我想找到有多少序列A-B-E(一个序列只是后续行的列表).增加的约束条件是序列的后续部分可以n分开最大行.让我们考虑这个例子n是2.

考虑组X.在这种情况下,恰好有1 和D之间(忽略多个连续的s).这意味着并且相隔1行,因此存在序列BEBBEA-B-E

我曾考虑使用collect_list(),创建一个字符串(如DNA)和使用正则表达式的子字符串搜索.但我想知道是否有更优雅的分布式方式,也许使用窗口函数?

编辑:

请注意,提供的数据框只是一个示例.真实的数据帧(以及组)可以是任意长的.

scala dataframe apache-spark spark-dataframe

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

Pipeline中Spark Dataframe中的OneHotEncoder

我一直在尝试使用成人数据集在Spark和Scala中运行示例.

使用Scala 2.11.8和Spark 1.6.1.

问题(目前)在于该数据集中的分类特征量,在Spark ML算法完成其工作之前,所有分类特征都需要编码为数字.

到目前为止我有这个:

import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.feature.OneHotEncoder
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}

object Adult {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("Adult example").setMaster("local[*]")
    val sparkContext = new SparkContext(conf)
    val sqlContext = new SQLContext(sparkContext)

    val data = sqlContext.read
      .format("com.databricks.spark.csv")
      .option("header", "true") // Use first line of all files as header
      .option("inferSchema", "true") // Automatically infer data types
      .load("src/main/resources/adult.data")

    val categoricals = data.dtypes filter (_._2 == "StringType")
    val encoders = …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql apache-spark-ml apache-spark-mllib

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

收集时Sparklyr“在字符串中嵌入nul”

在RI中有一个spark连接,一个DataFrame为ddf

library(sparklyr)
library(tidyverse)
sc <- spark_connect(master = "foo", version = "2.0.2")
ddf <- spark_read_parquet(sc, name='test', path="hdfs://localhost:9001/foo_parquet")
Run Code Online (Sandbox Code Playgroud)

由于行数不多,因此我想将其存储到内存中以应用一些机器学习魔术。但是,似乎无法收集某些行。

df <- ddf %>% head %>% collect # works fine
df <- ddf %>% collect # doesn't work
Run Code Online (Sandbox Code Playgroud)

第二行代码将引发Error in rawToChar(raw) : embedded nul in string:错误。失败的列/行具有一些字符串数据。由于head %>% collect工作表明某些行似乎失败,而其他行则按预期工作。

我如何解决此错误,有没有办法清除该错误?该错误实际上是什么意思?

r dplyr apache-spark sparklyr

5
推荐指数
0
解决办法
451
查看次数

使用索引列表有效填充 NumPy 数组

我知道如何执行并行循环以joblib返回列表作为结果。

但是,是否可以并行填充预定义numpy矩阵?

想象一下以下最小示例矩阵和数据:

column_data = ['a', 'b', 'c', 'd', 'e', 'f', 'x']
data = [['a', 'b', 'c'],
        ['d', 'c'],
        ['e', 'f', 'd', 'x']]
x = np.zeros((len(data), len(column_data))
Run Code Online (Sandbox Code Playgroud)

请注意,它column_data是排序且唯一的。data是列表的列表,而不是矩形矩阵。

循环:

for row in range(len(data)):
    for column in data[row]:
        x[row][column_data.index(column)] = 1
Run Code Online (Sandbox Code Playgroud)

可以并行化这个循环吗?如果没有并行化,填充矩阵70,000 x 10,000会非常慢。

python parallel-processing numpy vectorization joblib

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

Spark Dataframe在一对行上滑动窗口

我有CSV由三列的事件日志timestamp,eventIduserId.

我想要做的是nextEventId在数据框中添加一个新列.

一个示例事件日志:

eventlog = sqlContext.createDataFrame(Array((20160101, 1, 0),(20160102,3,1),(20160201,4,1),(20160202, 2,0))).toDF("timestamp", "eventId", "userId")
eventlog.show(4)

|timestamp|eventId|userId|
+---------+-------+------+
| 20160101|      1|     0|
| 20160102|      3|     1|
| 20160201|      4|     1|
| 20160202|      2|     0|
+---------+-------+------+
Run Code Online (Sandbox Code Playgroud)

期望的结果将是:

|timestamp|eventId|userId|nextEventId|
+---------+-------+------+-----------+
| 20160101|      1|     0|          2|
| 20160102|      3|     1|          4|
| 20160201|      4|     1|        Nil|
| 20160202|      2|     0|        Nil|
+---------+-------+------+-----------+
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在搞滑动窗口,但无法弄清楚如何比较2行......

val w = Window.partitionBy("userId").orderBy(asc("timestamp")) //should be a sliding window over 2 rows...
val nextNodes = second($"eventId").over(w) …
Run Code Online (Sandbox Code Playgroud)

scala event-log dataframe apache-spark apache-spark-sql

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