小编jay*_*elm的帖子

Mergesort - 自上而下快于自上而下吗?

我一直在阅读Sedgewick和Wayne的"Algorithms,4th Ed",并且我一直在实现JavaScript中讨论的算法.

我最近采用了书中提供的mergesort示例来比较自上而下和自下而上的方法......但我发现自下而上的运行速度更快(我认为).在我的博客上查看我的分析.- http://www.akawebdesign.com/2012/04/13/javascript-mergesort-top-down-vs-bottom-up/

我还没有找到任何讨论说一个mergesort方法应该比另一个快.我的实施(或分析)是否存在缺陷?

注意:我的分析测量算法的迭代循环,而不是严格的数组比较/移动.也许这有缺陷或无关紧要?

编辑:我的分析实际上没有时间速度,所以我关于它运行"更快"的声明有点误导.我通过递归方法(自上而下)和for循环(自下而上)跟踪"迭代" - 并且自下而上似乎使用更少的迭代.

javascript language-agnostic sorting algorithm mergesort

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

Python中列表值的最大和最小上限

我有一个值列表,我想将列表中任何元素的最大值设置为255,将最小值设置为0,同时保持范围内的元素不变.

oldList = [266, 40, -15, 13]

newList = [255, 40, 0, 13]
Run Code Online (Sandbox Code Playgroud)

目前我在做

for i in range(len(oldList)):
    if oldList[i] > 255:
        oldList[i] = 255
    if oldList[i] < 0:
        oldList[i] = 0
Run Code Online (Sandbox Code Playgroud)

或类似的newList.append(oldList[i]).

但必须有比这更好的方法,对吗?

python list

8
推荐指数
2
解决办法
6143
查看次数

用python igraph绘制社区

g在python-igraph中有一个图形.我可以通过VertexCluster以下方式获得社区结构:

community = g.community_multilevel()
Run Code Online (Sandbox Code Playgroud)

community.membership 给我一个图表中所有顶点的组成员资格列表.

我的问题非常简单,但我还没有找到特定于python的答案.如何使用其社区结构的可视化绘制图形?最好是PDF,所以像

layout = g.layout("kk")
plot(g, "graph.pdf", layout=layout) # Community detection?
Run Code Online (Sandbox Code Playgroud)

非常感谢.

python modularity graph decomposition igraph

7
推荐指数
3
解决办法
8073
查看次数

结构之间共享的方法

Rust的新手,为我的天真道歉.

我想定义一些概率分布,它们显然具有不同的参数.但是"界面"(我在Java中所知)应该是相同的.在最基本的层面上,每个分布都应该有sample一个sample_many方法.所以我实现了一个特征:

pub trait ERP<T> {
    fn sample(&self) -> T;
    fn sample_many(&self, i: isize) -> Vec<T>;
}
Run Code Online (Sandbox Code Playgroud)

然后可以创建特定的分布:

pub struct Bernoulli {
    pub p: f64
}

impl ERP<bool> for Bernoulli {
    fn sample(&self) -> bool {
        rand::random::<f64>() < self.p
    }

    fn sample_many(&self, i: isize) -> Vec<bool> {
        (0..i).map(|_| self.sample()).collect()
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是sample_many具体的方法.无论分布的类型如何,该方法都是相同的代码

pub struct Gaussian {
    pub mu: f64,
    pub sigma: f64
}

impl ERP<f64> for Gaussian {
    fn sample(&self) -> f64 {
        // …
Run Code Online (Sandbox Code Playgroud)

struct traits rust

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

Python - 将单键词典列表转换为单个词典

我有一个单键词典列表.例如:

lst = [
    {'1': 'A'},
    {'2': 'B'},
    {'3': 'C'}
]
Run Code Online (Sandbox Code Playgroud)

我想简单地将其转换为普通字典:

dictionary = {
    '1': 'A',
    '2': 'B',
    '3': 'C'
}
Run Code Online (Sandbox Code Playgroud)

什么是最简洁/有效的方法?

python dictionary list

6
推荐指数
2
解决办法
4021
查看次数

使用R和传感器加速度计数据检测跳转

我对传感器数据非常着迷.我使用我的iPhone和一个名为SensorLog的应用程序捕获加速度计数据,同时我站立并推动我的双腿跳跃.

我的目标是使用R创建一个模型,该模型可以识别跳跃以及我在空中的时间.我不确定如何进行这样的挑战.我有加速计数据的时间序列.

https://drive.google.com/file/d/0ByWxsCBUWbqRcGlLVTVnTnZIVVk/view?usp=sharing

一些问题:

  • 如何在时间序列数据中检测到跳转?
  • 如何识别出风时间部分?
  • 如何训练这样的模型?

在此输入图像描述

下面是用于创建上图的R代码,这是我站立并进行简单的跳转.

谢谢!

# Training set
sample <- read.csv("sample-data.csv")

# Sum gravity
sample$total_gravity <- sqrt(sample$accelerometerAccelerationX^2+sample$accelerometerAccelerationY^2+sample$accelerometerAccelerationZ^2)

# Smooth our total gravity to remove noise
f <- rep(1/4,4)
sample$total_gravity_smooth <- filter(sample$total_gravity, f, sides=2)

# Removes rows with NA from smoothing
sample<-sample[!is.na(sample$total_gravity_smooth),]

#sample$test<-rollmaxr(sample$total_gravity_smooth, 10, fill = NA, align = "right")

# Plot gravity
plot(sample$total_gravity, type="l", col=grey(.2), xlab="Series", ylab="Gravity", main="Accelerometer Gravitational Force")
lines(sample$total_gravity_smooth, col="red")
stdevs <- mean(sample$total_gravity_smooth)+c(-2,-1,+1,+2)*sd(sample$total_gravity_smooth)
abline(h=stdevs)
Run Code Online (Sandbox Code Playgroud)

r machine-learning time-series accelerometer iot

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

使用1和0将布尔数据帧写入csv

我有一个带有布尔值的pandas数据帧,即

    col1   col2
1   True   False
2   False  True
3   True   True
Run Code Online (Sandbox Code Playgroud)

当我使用pandas的DataFrame.to_csv方法时,结果数据框看起来像

,col1,col2
1,True,False
2,False,True
3,True,True
Run Code Online (Sandbox Code Playgroud)

有没有办法将布尔变量写为1和0(更节省空间),即

,col1,col2
1,1,0
2,0,1
3,1,1
Run Code Online (Sandbox Code Playgroud)

无需先抛出整个数据帧?

python csv pandas

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

Reason的缺点(::)运营商在哪里?

cons(::)运算符是1)在OCaml和类似语言中编写递归列表函数,以及2)列表上的模式匹配的基本部分.但是,我在Reason的有关cons的文档中找不到任何内容,在REPL中,这会引发错误:

Reason # let myList = [2, 3, 4];
let myList : list int = [2, 3, 4]
Reason # 1 :: myList;
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

是否有替代cons运营商?

ocaml pattern-matching cons reason

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

Numpy二进制矩阵 - 获取True元素的行和列

我有一个二进制numpy二维数组,比方说,

import numpy as np
arr = np.array([
#   Col 0   Col 1  Col 2
    [False, False, True],  # Row 0
    [True, False, False],  # Row 1
    [True, True, False],  # Row 2
])
Run Code Online (Sandbox Code Playgroud)

我想要True矩阵中每个元素的行和列:

[(0, 2), (1, 0), (2, 0), (2, 1)]
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过迭代来做到这一点:

links = []
nrows, ncols = arr.shape
for i in xrange(nrows):
    for j in xrange(ncols):
        if arr[i, j]:
            links.append((i, j))
Run Code Online (Sandbox Code Playgroud)

是否有更快或更直观的方式?

python arrays numpy matrix vectorization

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

argparse帮助消息中的互斥组标题和描述

为什么我不能拥有一个argparsetitleor 相互排斥的组description,以便它在--help消息下显示为一个单独的类别?

我有一个名称和描述的选项组:

import argparse

parser = argparse.ArgumentParser()

group = parser.add_argument_group(
    'foo options', 'various (mutually exclusive) ways to do foo')
group.add_argument('--option_a', action='store_true', help='option a')
group.add_argument('--option_b', action='store_true', help='option b')

args = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

产量--help:

usage: foo.py [-h] [--option_a] [--option_b]

optional arguments:
  -h, --help  show this help message and exit

foo options:
  various (mutually exclusive) ways to do foo

  --option_a  option a
  --option_b  option b
Run Code Online (Sandbox Code Playgroud)

但我想让小组互相排斥:

import argparse

parser = argparse.ArgumentParser()

group = …
Run Code Online (Sandbox Code Playgroud)

python argparse

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