小编ben*_*nbo的帖子

二进制numpy数组之间的快速汉明距离计算

我有两个相同长度的numpy数组包含二进制值

import numpy as np
a=np.array([1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0])
b=np.array([1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1])
Run Code Online (Sandbox Code Playgroud)

我想尽可能快地计算它们之间的汉明距离,因为我有数以百万计的这样的距离计算.

一个简单但缓慢的选择(取自维基百科):

%timeit sum(ch1 != ch2 for ch1, ch2 in zip(a, b))
10000 loops, best of 3: 79 us per loop
Run Code Online (Sandbox Code Playgroud)

我已经提出了更快的选项,灵感来自堆栈溢出的一些答案.

%timeit np.sum(np.bitwise_xor(a,b))
100000 loops, best of 3: 6.94 us per loop …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy cython hamming-distance

8
推荐指数
3
解决办法
9807
查看次数

弹性搜索 - 从json响应中排除索引和类型

当我对这样的索引执行查询时:

{
   "_source":["bar"] , "size":100,
   "query": {
       "match_all": {}
   },
   "filter": {
       "type" : {
           "value" : "foo"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

响应包括索引,类型等.但我已经知道索引和类型,因为我指定了它.这些信息只会膨胀json数据的大小.有没有办法从响应中排除这些?

这就是我得到的:

{
"took": 31,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
    },
"hits": {
    "total": 364024,
    "max_score": 1,
    "hits": [
          {
        "_index": "foo_bar",
        "_type": "foo",
        "_id": "asdjj123123",
        "_score": 1,
        "_source": {
          "bar": "blablablabla"
    }
  }
,...
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的,所以没有类型,分数,索引的响应:

{
"took": 31,
"timed_out": false,
"_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
    },
"hits": { …
Run Code Online (Sandbox Code Playgroud)

json elasticsearch

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

OpenCV python 将多边形从一个图像复制到另一个

我有两个图像。我想从一个图像中抓取一个区域(多边形,而不是矩形)并将该区域复制到另一个图像上。我怎样才能做到这一点?这是我到目前为止所拥有的。

import cv2
import numpy as np

#load two images
srcfilename = 'foo.jpg'
src1 = cv2.imread(srcfilename)
srcfilename = 'bar.jpg'
src2 = cv2.imread(srcfilename)


src1_mask = np.zeros(src1.shape[:-1])
#create a polygon for region of interest
poly = np.array([ [150,150], [200,100], [350,150], [350,200], [300,220], [200,200], [190,180] ], np.int32)
cv2.fillPoly(src1_mask, [poly], 255)
Run Code Online (Sandbox Code Playgroud)

在这一点上,我加载了两个图像,并且该区域有一个多边形和蒙版。现在我不知道如何使用这个掩码/多边形将 src1 的那部分复制到 src2 上。

#I can also create a mask that has the same number of channels (3)
src1_mask = np.zeros(src1.shape)
#create a polygon for region of interest
poly = np.array([ [150,150], …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

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

计算1 /(1 + exp(x))python时避免数值不稳定

我想为(可能很大)x计算1 /(1 + exp(x)).这是0和1之间表现良好的函数.我可以这样做

import numpy as np
1.0/(1.0+np.exp(x))
Run Code Online (Sandbox Code Playgroud)

但是在这个天真的实现中,np.exp(x)很可能只返回0或大于x的无穷大,具体取决于符号.python中是否有可以帮助我的功能?

我正在考虑实施一系列扩展和系列加速,但我想知道这个问题是否已经解决了.

python floating-point numpy expansion scipy

2
推荐指数
1
解决办法
735
查看次数