我正在尝试使用Matplotlib 1.2.0和Python 2.7.3创建3D条形图.我按照http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net/msg19740.html中的建议逐一绘制了条形图,但我仍然遇到渲染问题(即彼此顶部).
而且,当我调用我的代码时,我得到以下内容:
/usr/apps/python/lib/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.py:1476:RuntimeWarning:在法线中除以n时遇到的除以零]
/usr/apps/python/lib/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.py:1476:RuntimeWarning:在法线中除以n时遇到无效值])
我的问题:
提前致谢!
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.colors as colors
import matplotlib.cm as cmx
# my data
dat = [2.31778665482167e-310, 0.006232785101850947, 0.0285075971030949, 0.0010248181570355695, 0.0048776795767614825, 0.02877090365176044, 0.002459331469834533, 0.0008594610645495889, 0.002919824084878003, 0.000968081117692596, 0.0, 0.0, 0.0319623949119874, 0.00568752311279771, 0.009994801469036968, 0.03248018520506219, 0.006686905726805326, 0.005987863156039365, 0.0072955095915350045, 0.005568911905473998, 0.0, 0.0, 0.0, 0.028483143996551524, 0.031030793902192794, 0.06125216053962635, 0.02935971973938871, 0.028507530280092265, 0.030112963748812088, 0.028293406731749605, 0.0, 0.0, 0.0, 0.0, 0.004510645022825792, 0.028998119822468988, 0.0013993630391143715, 0.0010726572949244424, 0.002288215944285159, …Run Code Online (Sandbox Code Playgroud) 在 numpy 中,如果我有一个布尔数组,我可以用它来选择另一个数组的元素:
>>> import numpy as np
>>> x = np.array([1, 2, 3])
>>> idx = np.array([True, False, True])
>>> x[idx]
array([1, 3])
Run Code Online (Sandbox Code Playgroud)
我需要在 theano 中做到这一点。这是我尝试过的,但得到了意想不到的结果。
>>> from theano import tensor as T
>>> x = T.vector()
>>> idx = T.ivector()
>>> y = x[idx]
>>> y.eval({x: np.array([1,2,3]), idx: np.array([True, False, True])})
array([ 2., 1., 2.])
Run Code Online (Sandbox Code Playgroud)
有人可以解释 theano 结果并建议如何获得 numpy 结果吗?我需要知道如何做到这一点,以便在 theano 函数声明中正确实例化“给定”参数。提前致谢。