我在这里找到了一个(显然)工作的HTTPS服务器for python 2:http://code.activestate.com/recipes/442473-simple-http-server-supporting-ssl-secure-communica/?c = 15536
我试图在python3中移植它,但我没有好结果.这是我的代码:
from socketserver import BaseServer
import string,cgi,time
from os import curdir, sep
from http.server import SimpleHTTPRequestHandler, HTTPServer
import ssl
import os # os. path
import socket
class SecureHTTPServer(HTTPServer):
def __init__(self, server_address, HandlerClass):
BaseServer.__init__(self, server_address, HandlerClass)
ctx = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
#server.pem's location (containing the server private key and
#the server certificate).
fpem = 'certificate1.pem'
ctx.load_verify_locations(fpem)
self.socket = ctx.wrap_socket(socket.socket(self.address_family,
self.socket_type))
self.server_bind()
self.server_activate()
class SecureHTTPRequestHandler(SimpleHTTPRequestHandler):
def setup(self):
self.connection = self.request
self.rfile = socket._fileobject(self.request, "rb", self.rbufsize)
self.wfile …Run Code Online (Sandbox Code Playgroud) 我有值的阵列,所述v(例如v=[1,2,3,4,5,6,7,8,9,10])和索引的阵列,说g(例如 g=[0,0,0,0,1,1,1,1,2,2]).
我知道,例如,如何以非常简单的方式采取每个组的第一个元素:
import numpy as np
v=np.array([1,2,3,4,74,73,72,71,9,10])
g=np.array([0,0,0,0,1,1,1,1,2,2])
mask=np.concatenate(([True],np.diff(g)!=0))
v[mask]
Run Code Online (Sandbox Code Playgroud)
收益:
array([1, 74, 9])
Run Code Online (Sandbox Code Playgroud)
是否有任何numpythonic方式(避免显式循环)来获得每个子集的最大值?
因为我收到了两个很好的答案,一个是python map,一个是numpy例程,我正在搜索性能最好的,这里有一些时间测试:
import numpy as np
import time
N=10000000
v=np.arange(N)
Nelemes_per_group=10
Ngroups=N/Nelemes_per_group
s=np.arange(Ngroups)
g=np.repeat(s,Nelemes_per_group)
start1=time.time()
r=np.maximum.reduceat(v, np.unique(g, return_index=True)[1])
end1=time.time()
print('END first method, T=',(end1-start1),'s')
start3=time.time()
np.array(list(map(np.max,np.split(v,np.where(np.diff(g)!=0)[0]+1))))
end3=time.time()
print('END second method, (map returns an iterable) T=',(end3-start3),'s')
Run Code Online (Sandbox Code Playgroud)
结果我得到:
END first method, T= 1.6057236194610596 s
END second method, (map returns an iterable) T= 8.346540689468384 s …Run Code Online (Sandbox Code Playgroud) 我有一张Users与一对多关系的桌子Userlang.例如:
userlang.id userlang.userid userlang.lang
+-----------+---------------+-------------+
1 1 EN
2 1 FR
3 1 IT
4 2 EN
5 2 DE
6 3 IT
Run Code Online (Sandbox Code Playgroud)
我想选择所有的用户和他们的userlangs有至少一个userlang.lang=EN.
所以,我不能使用以下查询:
Select USERS.id from USERS inner join USERLANG on USERS.ID=USERLANG.USERID where USERLANG.LANG="EN"
Run Code Online (Sandbox Code Playgroud)
因为它只选择Userlangs带有a 的行lang="EN",而我想选择userlang每个用户的所有行,其中至少有一行lang="EN"
我已经能够用SQL以两种方式编写这样的查询:
Select *
from USERS inner join USERLANG on USERS.ID=USERLANG.USERID
where USERS.ID in (
Select USERS.id
from USERS inner join USERLANG on …Run Code Online (Sandbox Code Playgroud) 我有(H,ranges) = numpy.histogram2d()计算的结果,我正在尝试绘制它。
鉴于H我可以轻松地将其放入plt.imshow(H)以获得相应的图像。(见http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.imshow)
我的问题是生成的图像的轴是 的“细胞计数”H并且与 的值完全无关ranges.
我知道我可以使用关键字extent(如:更改 matplotlib imshow() 图形轴上的值)。但是这个解决方案对我不起作用:我的价值range不是线性增长(实际上它们呈指数增长)
我的问题是:我怎样才能输入rangein的值plt.imshow()?或者至少,或者我可以手动设置plt.imshow结果对象的标签值吗?
编辑extent不是一个好的解决方案。
我计划通过 webapp 控制一些程序(如媒体播放器和 shell),因为每次用户访问网页时网页都会死,我决定 webapp 将打开程序,setsid然后 webapp 将通过管道。
注意:我不能使用nohup因为nohup bash -i <fifoin >fifoout 2>&1 &自动停止之类的东西。
随着setsid一切完美,但我不能杀死进程,因为我不知道派生进程的ID!..那么,我怎样才能检索setsided 进程的 ID ?
我试过类似的东西
setsid bash -i <fifoin >fifoout 2>&1
kill $!
kill $$
Run Code Online (Sandbox Code Playgroud)
结果,两者kill都不起作用,我不会搜索 ID,ps -e因为我无法杀死所有正在运行的 bash -ishell!
我必须以恐怖的方式制作一份表格清单.它们中的每一个都具有可变数量的列(具有固定行).
为了执行此操作,我首先将<p:panelGrid>内部放入<ui:repeat>:所以我正确地生成了一个表列表.
然后,为了恐怖地制作柱子,我试着把它们放在一个 <ui:repeat>或一个 <c:forEach>里面<p:panelGrid>.在结果中我没有获得任何行.
我在这里写了一个小例子.在bean中testBackingBean,我已定义(并初始化)变量ArrayList<ArrayList<String>> tables.这是不会产生预期结果的xhtml:
<ui:repeat var="table" value="#{testBackingBean.tables}">
<p:panelGrid>
<f:facet name="header">
<p:row>
<p:column >header of #{table}</p:column>
</p:row>
</f:facet>
<p:row>
<c:forEach var="row" items="${table}">
<p:column>#{row}</p:column>
</c:forEach>
</p:row>
</p:panelGrid>
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)
值得注意的是,标题行正确转换#{table}为字符串.问题是我看不到任何数据行.
此外,如果我使用<table>而不是<p:panelGrid>一切工作如期望的那样.
另外,我尝试了不同的排列<c:forEach>并<ui:repeat>没有更迭.
那么,我怎样才能产生更多的表格(使用素数面)并设置一个dinamical数量的列?
谢谢!
编辑:我想使用两个<c:forEach>,但即使只有一个<c:forEach>我得到一个空的结果.事实上,如果我尝试以下xhtml:
<c:forEach items="${testBackingBean.tables}" var="tabella">
current element: #{tabella}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
然后我得到一个空的结果.(我知道,这是一个不同的问题)
我将scipy.optimize.minimize(https://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html)函数与结合使用method='L-BFGS-B。
上面返回的示例如下:
fun: 32.372210618549758
hess_inv: <6x6 LbfgsInvHessProduct with dtype=float64>
jac: array([ -2.14583906e-04, 4.09272616e-04, -2.55795385e-05,
3.76587650e-05, 1.49213975e-04, -8.38440428e-05])
message: 'CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH'
nfev: 420
nit: 51
status: 0
success: True
x: array([ 0.75739412, -0.0927572 , 0.11986434, 1.19911266, 0.27866406,
-0.03825225])
Run Code Online (Sandbox Code Playgroud)
该x值正确包含适合的参数。如何计算与这些参数相关的误差?
我有一个代码,我建立一个巨大的树,我需要保存它以供以后使用.不幸的是,我似乎无法腌制scipy.spatial.KDTree物体.
事实上,当我运行这个:
import pickle
import scipy.spatial
tree=scipy.spatial.KDTree([[1,2,3]])
pickle.dump(tree,open('tree.p','wb'))
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/pickle.py", line 1370, in dump
Pickler(file, protocol).dump(obj)
File "/usr/lib64/python2.7/pickle.py", line 224, in dump
self.save(obj)
File "/usr/lib64/python2.7/pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "/usr/lib64/python2.7/pickle.py", line 419, in save_reduce
save(state)
File "/usr/lib64/python2.7/pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "/usr/lib64/python2.7/pickle.py", line 649, in save_dict
self._batch_setitems(obj.iteritems())
File "/usr/lib64/python2.7/pickle.py", line 663, in _batch_setitems …Run Code Online (Sandbox Code Playgroud) 如何将函数定义为数组的元素?
我知道我可以这样做:
function array[5](){ echo "you are inside the function"; }
Run Code Online (Sandbox Code Playgroud)
并且它是一个有效的函数,在某种意义上说,指令array[5]正确执行函数.
不幸的是,该功能未列在数组的键中,因此,echo ${!array[*]}不会5作为键返回.
例如,以下代码:
array[0]="first"
function array[5](){ echo "you are inside the function"; }
array[7]="seventh"
echo ${!array[*]}
Run Code Online (Sandbox Code Playgroud)
只返回0 7.
那么,我如何向数组元素添加一个函数,以便我可以循环它?
我正在尝试运行一个简单的测试用例,其中动态分配的数组A是外部定义的,并使用 OpenACC 上传到 GPU。一切都与 PGI 编译器有关。
我的 header.h文件:
extern int *A;
#pragma acc declare create(A)
Run Code Online (Sandbox Code Playgroud)
然后,我的header.c实现:
int *A;
#pragma acc declare copyin(A)
Run Code Online (Sandbox Code Playgroud)
然后,在main.c我有
#include "header.h"
int main(int argc, char* argv[]){
printf("main() start\n");
int sum=0;
int N=0;
if(argc==1){
printf("usage: ./main.exe N");
}else{
N=atoi(argv[1]);
}
printf("N =%d\n", N);
A=(int*)malloc(N*sizeof(int));
for(int i=0;i<N;i++){A[i]=i;}
printf("almost data region\n");
#pragma acc data copy(sum)
{
printf("inside data region\n");
#pragma acc update device(A[0:N])
#pragma acc parallel loop reduction(+:sum)
for(int i=0;i<N;i++){
sum+=A[i];
} …Run Code Online (Sandbox Code Playgroud) bash ×2
numpy ×2
python ×2
python-3.x ×2
scipy ×2
arrays ×1
c ×1
cuda ×1
https ×1
jsf ×1
jsf-2 ×1
matplotlib ×1
max ×1
node.js ×1
openacc ×1
panelgrid ×1
pgi ×1
pickle ×1
postgresql ×1
primefaces ×1
sequelize.js ×1
sql ×1
ssl ×1