小编She*_*don的帖子

如何访问 Pandas 系列中的最后一个元素?

让我们考虑以下数据框:

import pandas as pd

d = {'col1': [1, 2, 3], 'col2': [3, 4, 5]}
df=pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

如果我想访问 pandas 系列中的第一个元素df['col1'],我可以简单地去df['col1'][0]

但是我怎样才能访问这个系列的最后一个元素呢?我试过df['col1'][-1]它返回以下错误:

密钥错误:-1L

我知道我可以做类似的事情,df['col1'][len(df)-1]但为什么反向索引在这里是不可能的?

python indexing pandas

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

调整 pytesseract 参数

注意:我正在从 Data Science Stack Exchange 迁移这个问题,在那里它几乎没有受到关注。

我正在尝试实施 OCR 解决方案来识别从屏幕图片中读取的数字。

我正在根据我的问题调整这个 pyimagesearch 教程

因为我正在处理深色背景,所以我首先反转图像,然后将其转换为灰度并对其进行阈值处理:

inverted_cropped_image = cv2.bitwise_not(cropped_image)
gray = get_grayscale(inverted_cropped_image)
thresholded_image = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)[1]
Run Code Online (Sandbox Code Playgroud)

然后我调用 pytesseract 的image_to_data函数来输出包含不同文本区域及其置信区间的字典:

from pytesseract import Output
results = pytesseract.image_to_data(thresholded_image, output_type=Output.DICT)
Run Code Online (Sandbox Code Playgroud)

results最后,当它们的置信度超过用户定义的阈值 (70%) 时,我会迭代并绘制它们。让我困扰的是,我的脚本识别了图像中的所有内容,除了我想识别的数字(1227.938)。

在此输入图像描述

我的第一个猜测是image_to_data参数设置不正确。

检查此网站,我选择了 11 的页面分割模式 ( psm)(稀疏文本)并尝试仅将数字列入白名单 ( tessedit_char_whitelist=0123456789m.'):

results = pytesseract.image_to_data(thresholded_image, config='--psm 11 --oem 3 -c tessedit_char_whitelist=0123456789m.', output_type=Output.DICT)
Run Code Online (Sandbox Code Playgroud)

唉,这更糟糕,脚本现在根本无法识别任何内容!

在此输入图像描述

您有什么建议吗?我在这里遗漏了一些明显的东西吗?

编辑#1:

应 Ann Zen 的要求,以下是用于获取第一张图像的代码:

import …
Run Code Online (Sandbox Code Playgroud)

ocr opencv image-processing python-tesseract

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

如何从 pandas.to_latex 的输出中删除多余的反斜杠?

我正在使用 pandasto_latex函数将 pandas 数据框导出到可以粘贴到 LaTeX 文件中的文本。

这是一个数据框示例:

import pandas as pd

d = {'Country': ['Burma', 'Burundi'], 'Capital': ['Naypyidaw','Gitega']}
df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

我使用to_latexwithindex=False是为了不导出行名称:

df.to_latex(index=False)
Run Code Online (Sandbox Code Playgroud)

这会产生以下文本块:

\\begin{tabular}{ll}\n\\toprule\n   
Capital &  Country \\\\\n\\midrule\n 
Naypyidaw &    Burma \\\\\n    
Gitega &  Burundi \\\\\n
\\bottomrule\n
\\end{tabular}\n
Run Code Online (Sandbox Code Playgroud)

是否有一个参数可以调整以消除这些反斜杠和额外的参数\n

这是我想要的输出:

\begin{tabular}{ll}
Capital &  Country \\ 
Naypyidaw &    Burma \\    
Gitega &  Burundi 
\end{tabular}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

python latex pandas

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

使用 fastai 的 learn.lr_find() 选择 learning_rate

我正在阅读Kaggle 上发布的这个Heroes Recognition ResNet34 notebook。

作者使用fastai的learn.lr_find()方法求最优学习率。

根据学习率绘制损失函数会产生下图:

在此处输入图片说明

似乎损失达到了 1e-1 的最小值,但在下一步中,作者将 1e-2 作为 max_lr 传入fit_one_cycle以训练他的模型:

learn.fit_one_cycle(6,1e-2)

为什么在这个例子中使用 1e-2 而不是 1e-1?这不会只会使训练变慢吗?

pytorch kaggle fast-ai cnn

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

在OpenCV2中找到最接近图像中心的轮廓

我正在尝试使用 openCV2 从静态地图自动描绘教堂和大教堂的轮廓。

简而言之,我是:

  • 从这个维基百科页面抓取建筑物的坐标。
  • 使用 Python 库 Folium 创建以这些坐标为中心的地图。
  • 将地图另存为 jpg 图像。
  • 应用openCV2的findContours方法来描绘建筑物的轮廓。

我最初假设大教堂将是几百米内最大的建筑,因此我按照PyImageSearch 教程按面积对轮廓进行排序:

contours = sorted(contours, key = cv2.contourArea, reverse = True)[0:1]
Run Code Online (Sandbox Code Playgroud)

在某些情况下,这就像一种魅力,比如圣彼得大教堂:

在此输入图像描述

然而,根据城市和所选的缩放级别,我经常碰巧选择附近实际上比教堂大的建筑物:

在此输入图像描述

我正在考虑选择最接近图像中心的轮廓。

一种选择是计算地图中所有轮廓的中心,然后确定距图像城市中心最近的点,但我想知道是否有更简单的解决方案。任何帮助将不胜感激!

python opencv contour

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

如何获取open()跳过二进制文件开头的字节?

我想使用Python 3.5打开以二进制文件形式编写的时间序列数据。

这是我到目前为止编写的脚本:

filename = 'dummy.ats'
file = open(filename, 'rb')
Run Code Online (Sandbox Code Playgroud)

二进制文件以我想跳过的1024字节的头文件开头。如何修改脚本来执行此操作?

python

0
推荐指数
1
解决办法
3947
查看次数