我需要一起使用两个容器:一个使用Tomcat,另一个使用数据库.我创建了以下描述服务的yaml文件:
postgredb:
image: postgres
expose:
- 5432
ports:
- 5432:5432
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
tomcat:
image: tomcat
links:
- postgredb:db
ports:
- 8080:8080
Run Code Online (Sandbox Code Playgroud)
一旦启动docker-compose,我就可以看到我无法从Tomcat访问数据库,除非我检索数据库的IP地址(通过docker inspect)并在将Tomcat连接池配置到数据库时使用它.根据我的理解,应该链接两个容器,我希望在端口5432上的localhost上找到数据库.否则我看到链接容器的好处很少.我的理解是否正确?任何指导将不胜感激!
我陷入了一个奇怪的情况.我尝试了从Pyson发布的三个解决方案中的任何一个:以尽可能小的量增加python浮点值.当我降落在这个浮点上时,所有三个解决方案都显示出奇怪的行为:1.15898324042702949299155079643222061138153076171875.
假设我有以下代码:
import numpy as np
from __future__ import division
a = 1.15898324042702949299155079643242061138153076171875
b = 0
b = np.nextafter(a,1)
print a, b
Run Code Online (Sandbox Code Playgroud)
由于某种原因,它不是b按可能的最小量递增,而是递减.这是为什么?
这是我从玩游戏中得到的一些快速结果:
In [12]: a = 1.15898324042702949299155079643242061138153076171875
In [13]: a
Out[13]: 1.1589832404270295
In [14]: numpy.nextafter(a,1)
Out[14]: 1.1589832404270293
In [15]: numpy.nextafter(a,-1)
Out[15]: 1.1589832404270293
Run Code Online (Sandbox Code Playgroud) 我想使用scipy的DCT-II,因为它已经编码并且速度很快.看一下这个文档,它似乎是一维实现.是否可以以这种方式使用它作为3D实现?我不确定数学.2D和3D实现相当于在计算中使用不同尺寸乘以1D的2或3倍?
假设您使用dct函数,然后不对数据进行操作并使用反转变换; 倒置数据不会与预转换数据相同吗?为什么浮点问题?是报告的问题还是正常行为?
In [21]: a = [1.2, 3.4, 5.1, 2.3, 4.5]
In [22]: b = dct(a)
In [23]: b
Out[23]: array([ 33. , -4.98384545, -4.5 , -5.971707 , 4.5 ])
In [24]: c = idct(b)
In [25]: c
Out[25]: array([ 12., 34., 51., 23., 45.])
Run Code Online (Sandbox Code Playgroud)
任何人都有解释为什么?当然,一个简单的c*10**-1方法可以解决这个问题,但是如果你重复调用函数来在几个维度上使用它,那么错误就会变大:
In [37]: a = np.random.rand(3,3,3)
In [38]: d = dct(dct(dct(a).transpose(0,2,1)).transpose(2,1,0)).transpose(2,1,0).transpose(0,2,1)
In [39]: e = idct(idct(idct(d).transpose(0,2,1)).transpose(2,1,0)).transpose(2,1,0).transpose(0,2,1)
In [40]: a
Out[40]:
array([[[ 0.48709809, 0.50624831, 0.91190972],
[ 0.56545798, 0.85695062, 0.62484782],
[ 0.96092354, 0.17453537, 0.17884233]],
[[ …Run Code Online (Sandbox Code Playgroud) 这将是一个相当简单的问题,我想知道在Python中是否有一个快速而干净的解决方法.
假设我有一个nd-array定义如下:
In [10]: C = np.random.rand(2,3,3)
In [11]: C
Out[11]:
array([[[ 0.43588471, 0.06600133, 0.81145749],
[ 0.20270693, 0.85879686, 0.75778422],
[ 0.68253449, 0.98287412, 0.63804605]],
[[ 0.61591433, 0.36453861, 0.23798795],
[ 0.26761896, 0.00657165, 0.04083067],
[ 0.11177481, 0.55245769, 0.97274592]]])
Run Code Online (Sandbox Code Playgroud)
然后我计算第三维数组中值和前一个值之间的差异,如下所示:
In [12]: C[:, :, 1:] = C[:, :, 1:] - C[:, :, 0:C.shape[2]-1]
In [13]: C
Out[13]:
array([[[ 0.43588471, -0.36988337, 0.74545616],
[ 0.20270693, 0.65608994, -0.10101264],
[ 0.68253449, 0.30033963, -0.34482807]],
[[ 0.61591433, -0.25137572, -0.12655065],
[ 0.26761896, -0.26104731, 0.03425902],
[ 0.11177481, 0.44068288, 0.42028823]]])
Run Code Online (Sandbox Code Playgroud)
是否可以使用类似的技术回到原始值,还是必须使用for循环和临时变量? …
我想使用scipy.fftpack中的dct功能和一个numpy float64数组.但是,它似乎只针对np.float32实现.有什么快速的解决方法可以做到这一点吗?我很快调查了它,但我不确定所有依赖项.所以,在搞乱一切之前,我想我会在这里寻求提示!
到目前为止我唯一能找到的就是这个链接:http://mail.scipy.org/pipermail/scipy-svn/2010-September/004197.html
提前致谢.
这是它引发的ValueError:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-f09567c28e37> in <module>()
----> 1 scipy.fftpack.dct(c[100])
/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/scipy/fftpack/realtransforms.pyc in dct(x, type, n, axis, norm, overwrite_x)
118 raise NotImplementedError(
119 "Orthonormalization not yet supported for DCT-I")
--> 120 return _dct(x, type, n, axis, normalize=norm, overwrite_x=overwrite_x)
121
122 def idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=0):
/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/scipy/fftpack/realtransforms.pyc in _dct(x, type, n, axis, overwrite_x, normalize)
215 raise ValueError("Type %d not understood" % type)
216 else:
--> 217 raise ValueError("dtype %s …Run Code Online (Sandbox Code Playgroud) 我对python比较陌生.我有一个有3个维度的numpy数组.我知道我们只能显示几个元素:.
它似乎工作得很好,而我从一个小值开始这样做,但在某一点上,它返回的东西不同于矩阵.
我想得到数组的平均值.所以,例如,给定一个数组c,我做numpy.mean(c[0:200][0:200][0:200]).这很好用.但增加起点(即c[200:][200:][200:])不起作用并返回nan.因此,打印结果解释了nan值.但我不明白为什么要c[200:][200:][200:]回答这种答案.
这是两个例子:
In [68]: c.shape
Out[68]: (448, 433, 446)
In [63]: c[100:][100:][100:]
Out[63]:
array([[[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]],
[[ 0., 0., 0., …Run Code Online (Sandbox Code Playgroud)