我想在列表中旋转元素,例如 - 将列表元素向右移动,以便['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) 在我的php网站中,我使用theano调用python脚本并在GPU上运行.
然而,当从php调用这个python脚本时,似乎apache对GPU没有任何权限,因此程序会回退到CPU,与GPU相比效率低得多.
如何授予Apache在GPU上运行程序的权限?
我遇到了一个问题.我尝试查询此文档以获取"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中工作:
db.perfiles.aggregate({"$unwind": "$COL"},
{ "$group": { _id: "$LOC", "sum" : {"$sum" : "$COL.amount" }}})
Run Code Online (Sandbox Code Playgroud)
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中查询同一个查询吗?谢谢!
我试图写一个函数来检查,如果一个对象在多个列表中发现,并从它的.我想知道是否有一种方法更干净或更聪明的使用某种形式的通用,使发现的列表中删除对象变量,你预定义格式或沿着这些行的东西.我的代码以丑陋的形式出现:
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)
我希望它适用于每个列表,我需要循环吗?任何建议都会很棒!我有解决方法,但我很想学习更优雅的编码方式!
我开始使用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? …
我想创建一个Telegram机器人,所以我按照说明进行操作并得到:
做完了!祝贺您的新机器人。您可以在t.me/RonGuruBot中找到它。现在,您可以添加有关机器人的部分和个人资料图片的描述,请参阅/ help以获取命令列表。顺便说一句,当您完成酷机器人的创建后,如果您想要一个更好的用户名,请ping我们的Bot支持。在执行此操作之前,只需确保机器人已完全运行即可。
使用此令牌访问HTTP API:318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw
但是,当我在Chrome中输入以下网址时:
https://api.telegram.org/bot318659684:AAFdR9YE4DEwg1NQitSIuifPotoA-3f6cUw/getUpdates
返回的JSON是:
{“ ok”:真,“结果”:[]}
而且文档使我相信JSON回复中应该包含更多内容。
我正在尝试添加第一个服务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) 我正在使用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 …
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 ++项目,我使用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 ++代码生成的可执行文件并不需要任何特殊的东西。