小编boa*_*der的帖子

Python:将列表中的元素向右移动,并将列表末尾的元素移动到开头

我想在列表中旋转元素,例如 - 将列表元素向右移动,以便['a','b','c','d']变为['d','a','b','c'][1,2,3]变为[3,1,2].

我尝试了以下,但它不起作用:

def shift(aList):
    n = len(aList)
    for i in range(len(aList)):
        if aList[i] != aList[n-1]:
            aList[i] = aList[i+1]
             return aList
         elif aList[i] == aList[i-1]:
            aList[i] = aList[0]
            return aList
shift(aList=[1,2,3])
Run Code Online (Sandbox Code Playgroud)

python

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

如何在GPU上启用php运行python脚本?

在我的php网站中,我使用theano调用python脚本并在GPU上运行.

然而,当从php调用这个python脚本时,似乎apache对GPU没有任何权限,因此程序会回退到CPU,与GPU相比效率低得多.

如何授予Apache在GPU上运行程序的权限?

php python apache gpu theano

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

mongo中的聚合查询有效,不在Pymongo中

我遇到了一个问题.我尝试查询此文档以获取"COL"数组之外的LOC标识符的数量和组的总和.

{
"_id" : ObjectId("57506d74c469888f0d631be6"),
"LOC" : "User001",
"COL" : [ 
    {
        "date" : "25/03/2016",
        "number" : "Folio009",
        "amount" : 100
    }, 
    {
        "date" : "25/04/2016",
        "number" : "Folio010",
        "amount" : 100
    }
Run Code Online (Sandbox Code Playgroud)

]}

这个命令在mongo中有效,但我无法使用Pymongo包在Python中工作:

Mongo查询(工作)

db.perfiles.aggregate({"$unwind": "$COL"},
{ "$group": { _id: "$LOC", "sum" : {"$sum" : "$COL.amount" }}})
Run Code Online (Sandbox Code Playgroud)

Pymongo(不工作)

from pymongo import MongoClient

client = MongoClient()

db = client['temporal']

docs = db.perfiles


pipeline = [{"$unwind": "$COL"},
     {"$group": {"_id": "$LOC", "count": {"$sum": "$COL.amount"}}}
          ]

list(db.docs.aggregate(pipeline))
Run Code Online (Sandbox Code Playgroud)

有什么建议可以在Pymongo中查询同一个查询吗?谢谢!

python mongodb pymongo

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

在python中压缩多个if语句

我试图写一个函数来检查,如果一个对象在多个列表中发现,并从它的.我想知道是否有一种方法更干净或更聪明的使用某种形式的通用,使发现的列表中删除对象变量,你预定义格式或沿着这些行的东西.我的代码以丑陋的形式出现:

def create_newlist(choice):

    if choice in list_a:
        list_a.remove(choice)
    if choice in list_b:
        list_b.remove(choice)
    if choice in list_c:
        list_c.remove(choice)
    if choice in list_d:
        list_d.remove(choice)
    if choice in list_e:
        list_e.remove(choice)
Run Code Online (Sandbox Code Playgroud)

我希望的是:

if choice in list_x:
   list_x.remove(choice)
Run Code Online (Sandbox Code Playgroud)

我希望它适用于每个列表,我需要循环吗?任何建议都会很棒!我有解决方法,但我很想学习更优雅的编码方式!

python loops if-statement list

6
推荐指数
2
解决办法
933
查看次数

需要哪个$ path,因此g ++/pybind11可以找到Python.h?

我开始使用pybind11(在Ubuntu 16.04上使用Python 2.7).

为了测试水域,我在我的c ++库周围创建了一个do-nothing包装器.唉,编译无法找到Python.h:

$ g++ -std=c++0x -fPIC -pedantic -g -Wno-missing-field-initializers -Wno-switch -Wno-multichar   -ftree-vectorize  -ftree-vectorize -mssse3  backend.h uvc-v4l2.cpp wrap.cpp  -o wrap.so
backend.h:4:9: warning: #pragma once in main file
 #pragma once
         ^
In file included from /usr/local/include/pybind11/pytypes.h:12:0,
                 from /usr/local/include/pybind11/cast.h:13,
                 from /usr/local/include/pybind11/attr.h:13,
                 from /usr/local/include/pybind11/pybind11.h:36,
                 from wrap.cpp:1:
/usr/local/include/pybind11/common.h:72:20: fatal error: Python.h: No such file or directory
 #include <Python.h>
                    ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

但是,我似乎有这个文件:

$ find /usr -name Python.h
/usr/include/python2.7/Python.h
/usr/include/python3.5m/Python.h
Run Code Online (Sandbox Code Playgroud)

哪个(路径?)我应该更正,以便g++能找到Python.h? …

c++ python ubuntu-16.04 pybind11

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

新的Telegram机器人将几乎空的JSON返回给API

我想创建一个Telegram机器人,所以我按照说明进行操作并得到:

做完了!祝贺您的新机器人。您可以在t.me/RonGuruBot中找到它。现在,您可以添加有关机器人的部分和个人资料图片的描述,请参阅/ help以获取命令列表。顺便说一句,当您完成酷机器人的创建后,如果您想要一个更好的用户名,请ping我们的Bot支持。在执行此操作之前,只需确保机器人已完全运行即可。

使用此令牌访问HTTP API:318659684:AAFdR9YE4D​​Ewg1NQitSIuifPotoA-3f6cUw

但是,当我在Chrome中输入以下网址时:

https://api.telegram.org/bot318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw/getUpdates

返回的JSON是:

{“ ok”:真,“结果”:[]}

而且文档使我相信JSON回复中应该包含更多内容。

  • 还应该有更多吗?
  • 我应该更改什么才能获得正确的JSON回复?

json telegram telegram-bot

6
推荐指数
3
解决办法
3889
查看次数

如何调试失败的systemctl服务(代码=已退出,状态= 217 / USER)?

我正在尝试添加第一个服务rhel7(位于AWS / EC2中),但是-服务配置不正确-正如我得到的:

[ec2-user@ip-172-30-1-96 ~]$ systemctl status clouddirectd.service -l
? clouddirectd.service - CloudDirect Daemon
   Loaded: loaded (/usr/lib/systemd/system/clouddirectd.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Tue 2018-01-09 16:09:42 EST; 8s ago
 Main PID: 10064 (code=exited, status=217/USER)

Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: clouddirectd.service: main process exited, code=exited, status=217/USER
Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: Unit clouddirectd.service entered failed state.
Jan 09 16:09:42 ip-172-30-1-96.us-west-1.compute.internal systemd[1]: clouddirectd.service failed.
Run Code Online (Sandbox Code Playgroud)

也:

[ec2-user@ip-172-30-1-96 ~]$ systemctl is-active clouddirectd
activating
[ec2-user@ip-172-30-1-96 ~]$ sudo systemctl list-units …
Run Code Online (Sandbox Code Playgroud)

service amazon-ec2 amazon-web-services rhel7 systemctl

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

更改 ImageHash Python 库中的哈希大小

我正在使用ImageHash库来生成图像的感知哈希。该库声称能够生成不同大小的哈希值(64、128、256),但我不知道如何获得 128 哈希值。

哈希大小由库重新缩放时的图像大小决定,例如:

def average_hash(image, hash_size=8):
    image = image.convert("L").resize((hash_size, hash_size), Image.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)

这里的默认值为 8(8x8 图像 = 64 像素 -> 灰度 -> 64 位)。

然而,128 位哈希值是如何创建的呢?

第二件事,pHash 的默认大小是 32,如此处所述但稍后将仅计算左上角 8x8 部分的 DCT,因此又是 64 位。DCT 的计算方法为scipy.fftpack

def phash(image, hash_size=32):
    image = image.convert("L").resize((hash_size, hash_size), Image.ANTIALIAS)
    pixels = numpy.array(image.getdata(), dtype=numpy.float).reshape((hash_size, hash_size))
    dct = scipy.fftpack.dct(pixels)
    dctlowfreq = dct[:8, 1:9]
    avg = dctlowfreq.mean()
    diff = dctlowfreq > avg
    return ImageHash(diff)
Run Code Online (Sandbox Code Playgroud)

如何更改哈希大小?
无论使用哪个值,计算将始终基于左上角 8x8,因此始终为 64!

发生的奇怪的事情是,如果我从 8 大小的 pHash 开始(从头开始调整图像大小),我得到 56 …

python hash dct scipy phash

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

boost.python c++ multithreading

I'm writing a python program that includes a c++ module (.so, using boost.python).
I'm starting several python threads that run a c++ function.

This is how the C++ code looks like:

#include <boost/python.hpp>
using namespace boost;
void f(){
    // long calculation

    // call python function

    // long calculation
}

BOOST_PYTHON_MODULE(test)
{
    python::def("f", &f);
}
Run Code Online (Sandbox Code Playgroud)

And the python code:

from test import f
t1 = threading.Thread(target=f)
t1.setDaemon(True)
t1.start()
print "Still running!"
Run Code Online (Sandbox Code Playgroud)

I encounter a problem: the "Still running!" …

c++ python multithreading gil boost-python

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

如何从CMake“安装” Python代码?

我有一个主要的c ++项目,我使用CMake来管理。设置cmake_install_prefix和配置后,它将生成makefile,然后可以使用非常标准的makefile进行构建和安装:

make
make install
Run Code Online (Sandbox Code Playgroud)

至此,我的二进制文件最终以结束cmake_install_prefix,而无需执行其他工作即可执行它们。最近,我在源代码树的几个位置添加了一些Python脚本,其中一些依赖于其他脚本。我可以使用CMake将Python文件和目录结构复制到cmake_install_prefix,但是如果我进入该路径并尝试使用其中一个脚本,Python将找不到其他脚本,imports因为PYTHONPATH它不包含cmake_install_prefix。我知道您可以使用CMake设置环境变量,但是它不会在各个shell之间持久存在,因此,对于用户而言,它不是真正的“设置”,而不仅仅是当前的终端会话。

解决方案似乎是在您的软件构建说明中增加一个步骤,说“设置您的PYTHONPATH”。有什么办法可以避免这种情况?这是作为较大项目的一部分“安装” Python脚本的标准做法吗?设置项目的持续集成似乎确实使事情复杂化,因为必须手动配置诸如Jenkins之类的东西才能注入环境变量,而构建和执行从c ++代码生成的可执行文件并不需要任何特殊的东西。

python cmake jenkins

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