小编duh*_*ime的帖子

在python中将二进制整数或字符串写入文件

我在Python中有一个字符串(也可能是整数),我想将它写入文件.它只包含1和0我想要将1和0的模式写入文件.我想直接编写二进制文件,因为我需要存储大量数据,但只需要存储某些值.当我只需要三个时,我认为没有必要占用每个值使用8位的空间.

例如.假设我要将二进制字符串写入"01100010"文件.如果我在文本编辑器中打开它会说b(01100010是b的ascii代码).不要混淆.我不想写ascii代码,这个例子只是为了表明我想直接将字节写入文件.


澄清:

我的字符串看起来像这样:

binary_string = "001011010110000010010"
Run Code Online (Sandbox Code Playgroud)

它不是由数字或字符的二进制代码组成.它包含仅与我的程序相关的数据.

python binary file-io file

9
推荐指数
2
解决办法
4万
查看次数

矩阵变换:将SVG路径坐标转换为Leaflet坐标系

简短版本:如何将SVG路径添加到Leaflet地图,以便在地图坐标更改时路径将更新(例如,在缩放更改或幻灯片上)?

长版:你好,我有一个包含建筑轮廓的地形.在对图像进行地理校正后,我使用Photoshop将栅格数据转换为SVG.我知道描述SVG边界的边界框的地理坐标,并知道SVG路径元素的内部坐标.我想知道现在将SVG的路径元素中描述的建筑物添加到Leaflet地图的最佳方法.

这是一个小提琴,显示红色SVG图像的边界框和蓝色的建筑物:http://jsfiddle.net/duhaime/4vL925Lj/正如您所看到的,建筑物相对于边界框尚未正确定向.

我最初计划对齐建筑物是使用一次性脚本将路径元素从SVG坐标系转换为lat,long坐标,然后使用我用于绘制边界框的折线函数在地图上绘制建筑物:

var polyline = L.polyline(
  [upperLeft, upperRight, lowerRight, lowerLeft, upperLeft], 
  {color: 'red', className: 'bounding-box', weight: 2}
).addTo(map); 
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于Leaflet折线无法绘制Bezier曲线,这些曲线存在于上面的SVG路径元素中.作为一种解决方法,我认为我可以对贝塞尔曲线使用线性近似,尽管这可能会成为一个相当大的工作量.

最后我意识到上面小提琴中的边界框的SVG使用贝塞尔曲线,这让我想到我可能会使用矩阵变换将构建SVG的坐标空间转换到Leaflet坐标空间.上面的小提琴使用样本矩阵变换css规则来变换建筑物层.

在深入了解这个兔子洞之前,我想问一下:其他人认为最好的方法是将上述SVG中的建筑物的路径添加到小提琴中的Leaflet地图中?我将非常感谢其他人可以就此问题提供的任何建议!

进展:我决定简化这个问题并弄清楚如何使用矩阵变换将一个div("A")转换为另一个div("B")的纵横比.在这样做的过程中,我制作了一个小的Python脚本,它将输入div的像素坐标和所需的输出div B的像素坐标作为输入.该脚本生成变换矩阵X,使得AX = B. 该脚本在内部记录,并伴随着小提琴.

我还提出了一个要点,即推导出变换矩阵,将SVG空间中的点投射到适当的lat,lng coords中.最糟糕的情况是,我可以对SVG路径元素进行分区,使用变换矩阵获取每个点的点积,并使用传单绘制折线以绘制建筑物.那将失去Bezier曲线......

javascript svg matrix linear-algebra leaflet

9
推荐指数
1
解决办法
2253
查看次数

将div定位在可变高度图像的特定区域上

我正在努力将div放在一个可变高度的图像上,我想知道如何最好地处理这种情况.例如,在下面的例子中,我试图将红色方块放在图像中的注册商标符号上:小提琴.

我的HTML/CSS看起来像这样:

<img src="http://cisloandthomas.com/wp-content/uploads/2015/12/Shrunken-Banner-Wide-Ends-1140x200.jpg" class="background">
<div class="overlay"></div>

.background {
  height: 100%;
  position: absolute;
  margin-top: -61px;
}

.overlay {
  position: absolute;
  height: 20px;
  width: 20px;
  background: red;
}
Run Code Online (Sandbox Code Playgroud)

我用以下JS将红色div放在图像上:

var resizeOverlay = function() {
  var windowHeight = $(window).height();

  var left = windowHeight * 1.07;
  var bottom = (windowHeight * .63) + 61;

  $(".overlay").css({
    "left": left,
    "bottom": bottom
  });
};

$(document).ready(resizeOverlay);
$(window).resize(resizeOverlay);
Run Code Online (Sandbox Code Playgroud)

结果并不理想,因为我只是构建了两个线性模型来计算x和y偏移量.其他人如何处理这项任务?

html javascript css position css-position

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

Pytest:将一个装置传递给另一个

是否可以在Pytest 中将一个夹具对象传递给另一个?例如,假设我想要两个夹具对象:一个是 numpy 数组,另一个是该数组的某个模型:

import pytest
import numpy as np

@pytest.fixture()
def arr():
  np.random.seed(141)
  return np.random.seed(141)

@pytest.fixture()
def model(arr):
  return arr * 2

def test_multiplication(arr, model):
  assert model == arr * 2
Run Code Online (Sandbox Code Playgroud)

这里arr是一个类型function,但是arr()NoneType内部模型,它confuseth我。

这个用例是一些测试需要访问原始数据arr本身,而其他测试需要访问模型的情况。

然而,要实现这一点,需要将一个夹具传递给另一个(因此我们可以使用数组构建模型)。这可能吗?其他人可以提供的任何帮助将不胜感激!

python unit-testing pytest

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

使用NLTK的Punkt Tokenizer保留空行

我正在使用NLTK的PUNKT句子标记器将文件拆分成句子列表,并希望保留文件中的空行:

from nltk import data
tokenizer = data.load('tokenizers/punkt/english.pickle')
s = "That was a very loud beep.\n\n I don't even know\n if this is working. Mark?\n\n Mark are you there?\n\n\n"
sentences = tokenizer.tokenize(s)
print sentences
Run Code Online (Sandbox Code Playgroud)

我想要打印:

['That was a very loud beep.\n\n', "I don't even know\n if this is working.", 'Mark?\n\n', 'Mark are you there?\n\n\n']
Run Code Online (Sandbox Code Playgroud)

但实际打印的内容显示已从第一句和第三句中删除尾随空行:

['That was a very loud beep.', "I don't even know\n if this is working.", 'Mark?', 'Mark are you there?\n\n\n']
Run Code Online (Sandbox Code Playgroud)

NLTK中的其他标记器有一个blanklines='keep'参数,但在Punkt标记生成器的情况下我没有看到任何这样的选项.我很可能错过了一些简单的东西.有没有办法使用Punkt句子标记器重新训练这些尾随的空行?我很感激别人可以提供的任何见解!

python nlp newline line-breaks nltk

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

Python:识别1d分布中的起伏模式

我的问题简要说明:给定Python中的1d分布,如何识别具有正弦波状起伏模式的分布区域?

我正在努力识别历史文档的页面扫描中的图像.这些图像在扫描中基本上始终是全宽的(也就是说,它们基本上不与文本并置).这让我相信最简单的解决方案是删除包含文本行的页面扫描区域.

使用以下代码段,可以将图像读入内存并从上到下测量图像中每行的聚合像素亮度,将输入图像转换为下图:

import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
from scipy.ndimage import imread
import numpy as np
import sys

img = imread(sys.argv[1])
row_sums = list([(sum(r)/len(r)) for r in img ])

# the size of the returned array = size of row_sums input array
window_size = 150
running_average_y = np.convolve(row_sums, np.ones((window_size,))/window_size, mode='same')

# plot the y dimension pixel distribution
plt.plot(running_average_y)
plt.show()
Run Code Online (Sandbox Code Playgroud)

输入图片:

在此输入图像描述

输出图:

在此输入图像描述

鉴于这种分布,我现在想要确定曲线的区域,这些区域具有在图的第一个和最后三分之一中看到的规则起伏模式(粗略地说).其他人是否有关于如何处理这项任务的想法?

起初我尝试将线性模型拟合到整个1d分布,但由于种种原因而失败.我现在认为尝试将类似正弦波的东西放到曲线的某些部分可能是有意义的,但这看起来有点矫枉过正.其他人是否有关于如何最好地完成这项任务的想法?任何建议或见解将非常感谢!

python opencv numpy classification machine-learning

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

Flask:使用 url_for 提供没有前导斜杠的资产

我正在开发一个 Flask 应用程序,用于url_for指定一些静态资产(js、css 等)的路由。以下是其中一个模板的示例:

<script src='{{ url_for('static', filename='js/search.js') }}'></script>
Run Code Online (Sandbox Code Playgroud)

当它被渲染成 html 时,路径如下所示:

<script src='/static/js/search.js'></script>
Run Code Online (Sandbox Code Playgroud)

是否可以修改此行为,以便从呈现的脚本路径中删除前导斜杠?目标是呈现以下内容:

<script src='static/js/search.js'></script>
Run Code Online (Sandbox Code Playgroud)

我将非常感谢其他人可以就这个问题提供的任何见解!

python routing relative-path flask

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

Python:规范化图像曝光

我正在研究一个测量和可视化图像相似性的项目.我的数据集中的图像来自书籍中的图像照片,其中一些图像的曝光率非常高或很低.例如,下面的图片来自两本不同的书; 顶部的那个是底部的那个重曝光重印,其中曝光看起来很好:

在此输入图像描述 在此输入图像描述

我想用Python标准化每个图像的曝光度.我想我可以使用以下天真的方法,它尝试将每个像素值居中在0到255之间:

from scipy.ndimage import imread
import sys

def normalize(img):
  '''
  Normalize the exposure of an image.
  @args:
    {numpy.ndarray} img: an array of image pixels with shape:
      (height, width)
  @returns:
    {numpy.ndarray} an image with shape of `img` wherein
      all values are normalized such that the min=0 and max=255
  '''
  _min = img.min()
  _max = img.max()
  return img - _min * 255 / (_max - _min)

img = imread(sys.argv[1])
normalized = normalize(img)
Run Code Online (Sandbox Code Playgroud)

只有在运行之后我才意识到这种规范化只会帮助最轻值小于255或最暗值大于0的图像.

是否有一种简单的方法来标准化图像的曝光,例如上面的顶部图像?对于其他人可以就此问题提出的任何想法,我将不胜感激.

python image image-processing

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

Python:requirements.txt指定具有两个版本范围的模块

我想在Python模块中指定tensorflow的版本。可接受的版本是:

(version >= 1.14.0 and version < 2.0) or (version >= 2.2)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何在requirements.txt文件中表达这种奇怪的情况?我相信有一种语法可以禁止模块的特定版本,但我一直找不到它......

python pip

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

Lambda@Edge 无法读取未定义的属性(读取“startsWith”)

我正在尝试部署 lambda@edge 函数(一个修改来自 Cloudfront 发行版的 HTML 的 AWS Lambda 函数)并在保存时获得此神秘响应:

在此输入图像描述

有谁知道Cannot read properties of undefined (reading 'startsWith')这里指的是什么,或者我该如何解决这个问题?任何指示都会有帮助!

amazon-web-services amazon-cloudfront aws-lambda aws-lambda-edge

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