小编Jeo*_*eon的帖子

如何检查两个列表在Python中是否循环相同

例如,我有列表:

a[0] = [1, 1, 1, 0, 0]
a[1] = [1, 1, 0, 0, 1]
a[2] = [0, 1, 1, 1, 0]
# and so on
Run Code Online (Sandbox Code Playgroud)

它们似乎是不同的,但如果假设开始和结束是连接的,那么它们是圆形相同的.

问题是,我拥有的每个列表的长度为55,并且只包含三个和52个零.没有循环条件,有26,235(55选3)列表.但是,如果条件"循环"存在,则存在大量循环相同的列表

目前我通过以下方式检查循环身份:

def is_dup(a, b):
    for i in range(len(a)):
        if a == list(numpy.roll(b, i)): # shift b circularly by i
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

在最坏的情况下,该功能需要55次循环移位操作.并且有26,235个列表可以相互比较.简而言之,我需要55*26,235*(26,235 - 1)/ 2 = 18,926,847,225次计算.它差不多是20吉加!

有没有什么好方法可以用更少的计算来做到这一点?或者支持循环的任何数据类型?

python algorithm

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

是否有仅提供音频的Youtube API?

我已多次搜索过这个问题了

许多人建议"同时获取音频和视频.并隐藏视频.' 并说"没有音频API"

但是如果我想通过Youtube听音乐,那么它需要的流量比仅检索音频时需要更多的流量.

令我困惑的是,一个名为Firetube的Android应用程序仅提供音频.

这只是一个技巧还是Google提供的AUDIO ONLY API?

youtube-api

49
推荐指数
5
解决办法
7万
查看次数

$ HTTP_XXX_VARS与PHP中的$ _XXX不同吗?

以下代码是否有意义?:

$t_server = isset( $_SERVER ) ? $_SERVER : $HTTP_SERVER_VARS;
Run Code Online (Sandbox Code Playgroud)

据我了解,$HTTP_XXX_VARS同样如此$_XXX,除了$HTTP_XXX_VARS已弃用.因此,我不理解上面的代码.

是否存在两个变量在旧系统中不同的情况,其中$HTTT_XXX_VARS不被视为已弃用?

php

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

RT抢占vs RTAI vs Xenomai用于实时linux

三个实时操作系统框架,扩展或补丁的区别,优缺点是什么?

我想测量一个CPU时间戳计数器(TSC),每次发送或接收数据帧或确认Wifi帧时的纳秒时间.

我意识到需要三种实时技术中的一种来提高精度并减少由于抢占,中断和上下文变化引起的抖动.

目前,我正在将RTAI应用于内核.由于编译需要很长时间,我想读一下这三个.

你能推荐一些文件或解释一下吗?

linux kernel real-time xenomai

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

如何在Python中使用间隔索引多个数组项

假设我有一个列表:

import numpy as np
a = [2, 4, 6, 8, ..., 1000] # total 500 elements
b = np.array(a)             # numpy version
Run Code Online (Sandbox Code Playgroud)

我想获得第1到第100,第201到第300,第401到第500个元素,并将它们变成一个新的数组.

为此,我尝试了以下代码:

a_sub = a[0:100] + a[200:300] + a[400:500]
b_sub = np.concatenate((b[0:100], b[200:300], b[400:500]))
Run Code Online (Sandbox Code Playgroud)

但我希望通过简单的oneline-indexing来实现

说:

a_sub = a[(0:100, 200:300, 400:500)]
a_sub = a[[0:100, 200:300, 400:500]]
b_sub = b[[0:100, 200:300, 400:500]]
b_sub = b[[0:100, 200:300, 400:500]]
Run Code Online (Sandbox Code Playgroud)

但以上都是无效的,我找不到这样的oneliner索引.

python arrays numpy

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

如何为版本2和3分别设置PYTHONPATH?

假设我将PYTHONPATH设置.bashrc如下:

export PYTHONPATH=$PYTHONPATH:/ver2packages
Run Code Online (Sandbox Code Playgroud)

当我在Python 3中检查我的python路径时:

$ python3
>>> import sys
>>> print(sys.path)
['', '/home/user', '/ver2packages', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
Run Code Online (Sandbox Code Playgroud)

在中ver2packages,如果某些软件包的名称与版本3的软件包相同,则可能存在冲突和错误。

有没有一种方法可以为每个版本的Python设置pythonpath?

python

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

numpy数组打印到文件中,不需要包装

我有很多冗长的向量,如下所示:

a = np.array([ 57.78307975,  80.69239616,  80.9268784,   62.03157284,  61.57220483,  67.99433377,  68.18790282])
Run Code Online (Sandbox Code Playgroud)

当我将其打印到文件中时:

outfile.write(str(a))
# or
outfile.write(np.array_str(a))
Run Code Online (Sandbox Code Playgroud)

它自动包裹一行的中间,它使向量占用两行:

[ 57.78307975  80.69239616  80.9268784   62.03157284  61.57220483
  67.99433377  68.18790282]
Run Code Online (Sandbox Code Playgroud)

包装线的宽度为66.我不确定该值是否与终端屏幕的宽度有关.

我只是想看一个矢量打印成一行.我该怎么做?

python numpy

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

多核时钟计数器一致性

我试图测量内核模块上两个时间点之间的时钟计数器的差异.我使用以下命名函数get_ccnt()来获取某个时间的时钟计数器值:

static __inline__ long long int get_ccnt(void)
{
    #if defined(__i386__)
        long long int x;
        __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
        return x;

    #elif defined(__x86_64__)
        unsigned int hi, lo;
        __asm__ __volatile__ ("rdtsc" : "=a"(lo), "=d"(hi));
        return ( (long long int)lo)|( ((long long int)hi)<<32 );

    #endif
}
Run Code Online (Sandbox Code Playgroud)

我关注的是,我使用的是HP EliteBook 2530p,其中Intel Core 2 Duo SL9400(规格参考)

我听说CPU之后的Nehalem所有内核都有一致的时钟计数器.(如果我错了,请指出.)但是,英特尔酷睿2双核SL 9400有一个代号Penryn.

因此,我认为如果内核模块在两个时间点之间从一个核心移动到另一个核心,那么两个核心之间的一致性就会受到影响,我无法获得正确的时钟差异.

我在想什么?如果是,有没有办法解决它(例如修复内核模块不将核心移动到核心?)

c x86 assembly cpu-architecture

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

在MATLAB中连接两个或多个struct-type变量

假设所有变量的类型都与大小(维度)struct相同.例如:fieldsconcatenatable

a.x = 1; a.y = 2;
b.x = 10; b.y = 20;
Run Code Online (Sandbox Code Playgroud)

与普通串联:

c = [a; b];
Run Code Online (Sandbox Code Playgroud)

回报

c(1).x = 1; c(1).y = 2;
c(2).x = 10; c(2).y = 20;
Run Code Online (Sandbox Code Playgroud)

我想要的是:

c.x(1) = 1; c.y(1) = 2;
c.x(2) = 10; c.y(2) = 20;
Run Code Online (Sandbox Code Playgroud)

它可以通过以下方式完成:

c.x = [a.x; b.x];
c.y = [a.y; b.y;];
Run Code Online (Sandbox Code Playgroud)

但是,如果变量有很多字段,

a.x1 = 1;
a.x2 = 2;
% Lots of fields here
a.x100 = 100;
Run Code Online (Sandbox Code Playgroud)

编写这样的代码是浪费时间.有什么好办法吗?

matlab

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

Monorepo 与 `rootDirs` 会产生不需要的子目录,例如 `outDir` 中的 `src`

我正在计划一个 monorepo typescript 项目,如下所示:

/ (root)
+--backend/
|  +-src/
|  \-tsconfig.json
+--shared/
|  \-src/
\--frontend/
   \-src/
Run Code Online (Sandbox Code Playgroud)

tsconfig.json定义如下:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "baseUrl": "./src",
    "paths": {
      "shared": [
        "../../shared/src"
      ]
    },
    "rootDirs": [
      "./src",
      "../shared/src"
    ],
    "esModuleInterop": true
  }
}
Run Code Online (Sandbox Code Playgroud)

tsc当我在它下面执行时backend,如下所示:

/ (root)
+-backend/
  +-dist/
  | +-backend/
  | | +-src/
  | \-shared/
  |   \-src/
  +-src/
  \-tsconfig.json
Run Code Online (Sandbox Code Playgroud)

在上面,dist包含backendshared但它们每个都包含src在它下面。我想要backendshared包含dist …

dependencies typescript tsconfig monorepo

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