小编mua*_*aiz的帖子

使用opencv python在图像上绘制双向箭头

我想使用opencv在两点之间绘制双向箭头.我有一个单箭头图的功能,如下所示

import cv2

img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
pt1 = (x1, y1)
pt2 = (x2, y2)
cv2.arrowedLine(img_, pt1, pt2, (0,0,255), 5)
cv2.imshow('Image with arrow', img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

但有没有任何方法可以在两点之间绘制双边箭头?我已经阅读了文档,但没有找到任何文档.请指导.谢谢.

python opencv image-processing draw

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

使用 python-pptx 将 matplotlib 图形保存在 ppt 文件中,而不保存图形

有没有办法使用 python-pptx 在 powerpoint 演示文稿中绘制 matplotlib 图形,而不将图形保存为 *.jpg 或 *.png ?下面是一种简单的方法,即将 matplotlib 图保存为图像文件,然后将其加载到 python-pptx 中,但这根本不是有效的方法。

import numpy as np
import matplotlib.pyplot as plt
from pptx import Presentation
from pptx.util import Inches 

np.random.seed(5)
x = np.arange(1, 101)
y = 20 + 3 * x + np.random.normal(0, 60, 100)
plt.plot(x, y, "o")
plt.plot([70, 70], [100, 250], 'k-', lw=2)
plt.plot([70, 90], [90, 200], 'k-')

plt.show()
plt.savefig('graph.jpg')
img = 'graph.jpg'
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
pic = slide.shapes.add_picture(img, Inches(1), Inches(1), …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-pptx

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

mendeley Python SDK中的身份验证问题

我从这里读Mendeley文档.我试图在我的控制台中获取数据,我正在使用教程中的以下代码

from mendeley import Mendeley

# These values should match the ones supplied when registering your application.
mendeley = Mendeley(client_id, redirect_uri=redirect_uri)

auth = mendeley.start_implicit_grant_flow()

# The user needs to visit this URL, and log in to Mendeley.
login_url = auth.get_login_url()

# After logging in, the user will be redirected to a URL, auth_response.
session = auth.authenticate(auth_response)
Run Code Online (Sandbox Code Playgroud)

现在我不明白auth_response最后一行代码会从哪里来?有人有任何想法吗?谢谢

python oauth mendeley

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

Boto3雅典娜查询而无需将数据保存到S3

我正在尝试使用boto3运行一组查询,并且不想将数据保存到s3。相反,我只想获得结果并希望使用这些结果。我正在尝试执行以下操作

import boto3

client = boto3.client('athena')
response = client.start_query_execution(
        QueryString='''SELECT * FROM mytable limit 10''',
        QueryExecutionContext={
            'Database': 'my_db'
            }.        
        ResultConfiguration={
            'OutputLocation': 's3://outputpath',
            }
        )

print(response)
Run Code Online (Sandbox Code Playgroud)

但是在这里我不想给,ResultConfiguration因为我不想在任何地方写结果。但是,如果删除ResultConfiguration参数,则会出现以下错误

botocore.exceptions.ParamValidationError: Parameter validation failed:
Missing required parameter in input: "ResultConfiguration"
Run Code Online (Sandbox Code Playgroud)

因此,给s3输出写入位置似乎是必须的。那么,如何避免这种情况并仅以响应方式获得结果呢?

amazon-web-services boto3 amazon-athena

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

匹配两个字符串(char到char),直到第一次使用python不匹配

我试图顺序匹配两个字符串,直到第一个不匹配的字符,然后确定完全匹配的百分比.我的代码是这样的:

def match(a, b):
    a, b = list(a), list(b)
    count = 0
    for i in range(len(a)):
        if (a[i]!= b[i]): break
        else: count = count + 1
    return count/len(a)

a = '354575368987943'
b = '354535368987000'
c = '354575368987000'
print(match(a,b)) # return 0.267
print(match(a,c)) # return 0.8
Run Code Online (Sandbox Code Playgroud)

python中是否有任何内置方法可以更快地完成它?为简单起见,假设两个字符串长度相同.

python string-matching

4
推荐指数
1
解决办法
415
查看次数

过滤掉包含特殊字符的 pandas 数据帧行的最快方法

我有一个特殊字符列表。例如

BAD_CHARS = ['.', '&', '\(', '\)', ';', '-']
Run Code Online (Sandbox Code Playgroud)

我想从 pandas 数据帧列中删除包含这些特殊字符的所有行。目前我正在做以下事情

df = '''
        words  frequency
            &         11
    CONDUCTED          3
       (E.G.,          5
   EXPERIMENT          6
         (VS.          5
        (WARD          3
            -         14
        2006;          3
           3D          5
         ABLE          5
     ABSTRACT          3
  ACCOMPANIED          5
     ACTIVITY         11
           AD          5
       ADULTS          6
'''
for char in BAD_CHARS:
    df = df[~df['word'].str.contains(char)]

# Expected Result
        words  frequency
    CONDUCTED          3
   EXPERIMENT          6
           3D          5
         ABLE          5
     ABSTRACT          3
  ACCOMPANIED          5
     ACTIVITY         11
           AD          5
       ADULTS          6
Run Code Online (Sandbox Code Playgroud)

首先它不起作用,其次我猜它不快。那么我怎样才能以更快的方式做到这一点呢?谢谢

python dataframe pandas

4
推荐指数
1
解决办法
8340
查看次数

使用 Apple M1 Max 时 Docker 上的 Python“exec /usr/local/bin/python3: exec format error”

当我搬到我的新 Mac M1 Max 上时,我的 docker 镜像就工作正常了。即使使用我的 M1 Max,我也已经安装了 docker 并成功创建了映像,并将其推送到 AWS ECR。现在,当我运行该图像时,它不会运行但会引发错误

exec /usr/local/bin/python3: exec format error
Run Code Online (Sandbox Code Playgroud)

我的 Dockerfile 如下所示,但还没有运气。每次都是同样的错误。我知道在 Mac M1 Max 上构建 docker 镜像并运行它们并不简单,但在许多 StackOverflow 答案中我发现下面的添加有--platform=linux/arm64帮助,但对我来说还没有帮助。

FROM --platform=linux/amd64 python:3.8-slim-buster
# FROM --platform=linux/arm64 python:3.8-slim-buster (tried this one as well)
# FROM --platform=linux/arm64/v8 python:3.8-slim-buster (tried this one as well)


WORKDIR /project
COPY ./requirements.txt .

RUN apt-get -qq update 
RUN pip3 --quiet install --requirement requirements.txt \
         --force-reinstall --upgrade

COPY . .

Run Code Online (Sandbox Code Playgroud)

linux docker python-3.8 apple-m1

4
推荐指数
1
解决办法
8207
查看次数

使用python中的regex从描述中提取项目的权重

我有一份产品说明清单.例如:

 items = ['avuhovi Grillikaapeli 320g','Savuhovi Kisamakkara 320g',
'Savuhovi Raivo 250g', 'AitoMaku str.garl.sal.dres.330ml', 'Rydbergs
 225ml Hollandaise sauce']
Run Code Online (Sandbox Code Playgroud)

我想提取320g,320g,250ml,330ml的重量.我知道我们可以使用正则表达式,但不知道如何构建正则表达式来提取它.您可以看到权重有时位于描述的中间,有时将点(.)作为分隔符而不是空格.所以,我很困惑如何提取.

在此先感谢您的帮助:)

python regex

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

Pandas 中的类似 SUMIF 的函数

我有一个如下所示的数据框:

Date    Attribute1  Attribute2  Attribute3
6/2/2014    7   6   9
6/2/2014    10  9   7
6/2/2014    6   6   8
6/3/2014    6   9   5
6/3/2014    5   7   6
6/4/2014    9   7   5
6/5/2014    8   6   8
6/5/2014    7   10  8
Run Code Online (Sandbox Code Playgroud)

我想在日期上应用每一列值,以便输出如下所示:

Date    Attribute1  Attribute2  Attribute3
6/2/2014    23  21  24
6/3/2014    11  16  11
6/4/2014    9   7   5
6/5/2014    15  16  16
Run Code Online (Sandbox Code Playgroud)

我不知道 Pandas 有什么可能的方法来做这个操作。请帮忙。谢谢。

python dataframe pandas

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

排序二维列表python

我有这样的二维列表

a = [[42, 206], [45, 40], [45, 205], [46, 41], [46, 205], [47, 40], [47, 202], [48, 40], [48, 202], [49, 38]]
Run Code Online (Sandbox Code Playgroud)

实际上这些是2D-Euclidean空间中的坐标.我希望按照关闭点顺序排列的方式对其进行排序.因此,列表如下所示

sorted_a = [[45,205],[42,206],[46,205],[47,202],[48,202],[45,40],[46,41],[47,40],[48,40],[49,38]]
Run Code Online (Sandbox Code Playgroud)

我也用过这个方法

sorted_a = sorted(a, key=lambda x: (x[0],x[1]))
Run Code Online (Sandbox Code Playgroud)

但它没有返回我所需的结果.非常感谢您的帮助.谢谢

python numpy pandas

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