IndexError:将来,0-D布尔数组将被解释为有效的布尔索引



,所以我试图从文件中读取列表,然后将其绘制为图。

这是我的代码

with open('the list') as f:
     listoflang = [tuple(map( str ,i.split())) for i in f]
print listoflang 
import numpy as np                                                               
import matplotlib.pyplot as plt  
top= listoflang
labels, ys = zip(*top)
xs = np.arange(len(labels)) 
width = 1
fig = plt.figure()                                                               
ax = fig.gca()
ax.bar(xs, ys, width, align='center')
ax.set_xticks(xs)
ax.set_xticklabels(labels)
ax.set_yticks(ys)
plt.savefig('graph.png')

ListOflang看起来像

[('mysql',2),('unix',2),('linux',1),('perl',2),('php',4),('java',25),('javascript(初学者)',1),('ruby',2),('html',9),('android',1),('css',4),4),('shell',','1),('c/c ',1),('python',29),('javascript',3),('c#(初学者)',1),('jsp',1),('sql',2),('html& css',1),('c',37),('python(basics',1),('c ',25),25),('cpp',5)]

但是返回此

> Traceback (most recent call last):   File "graphmon.py", line 22, in
> <module>
>     plt.savefig('graph.png')   File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line
> 697, in savefig
>     res = fig.savefig(*args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py", line
> 1573, in savefig
>     self.canvas.print_figure(*args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/backend_bases.py",
> line 2252, in print_figure
>     **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.py",
> line 545, in print_png
>     FigureCanvasAgg.draw(self)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.py",
> line 464, in draw
>     self.figure.draw(self.renderer)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line
> 63, in draw_wrapper
>     draw(artist, renderer, *args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py", line
> 1144, in draw
>     renderer, self, dsu, self.suppressComposite)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line
> 139, in _draw_list_compositing_images
>     a.draw(renderer)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line
> 63, in draw_wrapper
>     draw(artist, renderer, *args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/axes/_base.py",
> line 2426, in draw
>     mimage._draw_list_compositing_images(renderer, self, dsu)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line
> 139, in _draw_list_compositing_images
>     a.draw(renderer)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line
> 63, in draw_wrapper
>     draw(artist, renderer, *args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/axis.py", line
> 1136, in draw
>     ticks_to_draw = self._update_ticks(renderer)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/axis.py", line 969,
> in _update_ticks
>     tick_tups = [t for t in self.iter_ticks()]   File "/usr/local/lib/python2.7/dist-packages/matplotlib/axis.py", line 914,
> in iter_ticks
>     self.major.formatter.set_locs(majorLocs)   File "/usr/local/lib/python2.7/dist-packages/matplotlib/ticker.py", line
> 644, in set_locs
>     self._compute_offset()   File "/usr/local/lib/python2.7/dist-packages/matplotlib/ticker.py", line
> 656, in _compute_offset
>     locs = locs[(vmin <= locs) & (locs <= vmax)] IndexError: in the future, 0-d boolean arrays will be interpreted as a valid boolean
> index

我会做什么错?预先感谢!

我在python 3.5.2和numpy 1.12.1上使用numpy数组和掩码的构造也有类似的问题。

构造错误显示的位置: ret[ix,(mask==zeroes)] = 0

,掩模具有与RET的第一维度相互互补的,而蒙版和零是具有相同维度的二进制数组(仅零和内部)。

当警告过滤器配置为生成错误时

with warnings.catch_warnings():
warnings.simplefilter("error")  # "ignore" if not solved quickly

ret [ix,(mask ==零)] = 0

当警告过滤器配置为生成错误时,我会更频繁地得到问题。当过滤器在"警告"上设置时,错误消息也会更改。

with warnings.catch_warnings():
warnings.simplefilter("error")  # "ignore" if not solved quickly
ret[ix,(mask==zeroes)] = 0

我不确定正确的解决方法是什么。

最新更新