小编rco*_*oup的帖子

阈值numpy数组,找到窗口

输入数据是一个二维数组(时间戳,值)对,按时间戳排序:

np.array([[50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66],
          [ 2,  3,  5,  6,  4,  2,  1,  2,  3,  4,  5,  4,  3,  2,  1,  2,  3]])
Run Code Online (Sandbox Code Playgroud)

我想找到值超过阈值的时间窗口(例如> = 4).似乎我可以使用布尔条件执行阈值部分,并使用以下内容映射回时间戳np.extract():

>>> a[1] >= 4
array([False, False,  True,  True,  True, False, False, False, False,
        True,  True,  True, False, False, False, False, False])

>>> np.extract(a[1] >= 4, a[0])
array([52, 53, 54, 59, 60, 61])
Run Code Online (Sandbox Code Playgroud)

但是从那里我需要每个窗口的第一个和最后一个时间戳匹配阈值(即.[[52, 54], [59, 61]]),这是我无法找到正确方法的地方.

python arrays numpy

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

分发 python 包时处理 dylib

python setup.py bdist_wheel在使用或等效命令构建 Cython 模块后,我需要运行某些命令。这可能吗?

\n\n

具体情况如下:\n我正在为 osx 开发 Cython 程序。它链接到.dylib我的主目录中的某些文件,并且要构建程序,您必须运行

\n\n
export DYLD_LIBRARY_PATH=/path/to/parent/dir\n
Run Code Online (Sandbox Code Playgroud)\n\n

(这很麻烦)或包含一个指令来setup.py运行

\n\n
install_name_tool -change @executable_path/my.dylib /path/to/my.dylib\n
Run Code Online (Sandbox Code Playgroud)\n\n

这基本上的作用是告诉二进制文件在哪里寻找dylib. 这两种选择都不是理想的,但后者似乎更便携。现在我刚刚将这些说明添加到 的底部setup.py,但这仍然不可移植:假设我按如下方式打包并上传我的包:

\n\n
python setup.py sdist  # I think this collects source files into a .tar\npython setup.py bdist_wheel  # I think this builds a binary. This is where I assume the post-compilation stuff should happen.\ntwine upload dist/*   # This puts stuff up on PyPi.\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,我已经阅读了文档和一些教程,但我承认我仍然不能 100% 确定这些命令的作用。但我知道如果随后在另一个项目中我运行 …

portability distutils dylib cython

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

确定Python对象是正则表达式还是字符串

思考练习:编写采用正则表达式模式字符串完全匹配的Python函数的“最佳”方法是什么:

import re
strings = [...]

def do_search(matcher):
  """
  Returns strings matching matcher, which can be either a string
  (for exact match) or a compiled regular expression object
  (for more complex matches).
  """
  if not is_a_regex_pattern(matcher):
    matcher = re.compile('%s$' % re.escape(matcher))

  for s in strings:
    if matcher.match(s):
      yield s
Run Code Online (Sandbox Code Playgroud)

那么,实施的思路is_a_regex_pattern()呢?

python regex

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

标签 统计

python ×2

arrays ×1

cython ×1

distutils ×1

dylib ×1

numpy ×1

portability ×1

regex ×1