<p dir="auto">In NumPy 1.7, I have this error:</p>
<blockquote>
<blockquote>
<blockquote>
<p dir="auto">numpy.ndindex()<br>
Traceback (most recent call last):<br>
File "", line 1, in <br>
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/index_tricks.py", line 536, in <strong>init</strong><br>
x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))<br>
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/stride_tricks.py", line 28, in as_strided<br>
return np.asarray(DummyArray(interface, base=x))<br>
File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 324, in asarray<br>
return array(a, dtype, copy=False, order=order)<br>
ValueError: <strong>array_interface</strong> shape must be at least size 1</p>
</blockquote>
</blockquote>
</blockquote>
<p dir="auto">In NumPy 1.6.1, I have this:</p>
<blockquote>
<blockquote>
<blockquote>
<p dir="auto">numpy.ndindex()<br>
&lt;numpy.lib.index_tricks.ndindex object at 0x7f9015364750&gt;<br>
numpy.ndindex().next()<br>
()</p>
</blockquote>
</blockquote>
</blockquote>
<p dir="auto">This make this Theano test fail:</p>
<p dir="auto">nosetests -s --pdb --pdb-failure theano/tensor/signal/tests/test_downsample.py:TestDownsampleFactorMax.test_max_pool_2d_2D</p>
<p dir="auto">It looks like the behavior for <code class="notranslate">ndindex</code> has changed since 1.6.2. For example, the following used to work:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [8]: np.ndindex(*())
Out[8]: &lt;numpy.lib.index_tricks.ndindex at 0x1058b3910&gt;

In [9]: np.ndindex((1,2,3))
Out[9]: &lt;numpy.lib.index_tricks.ndindex at 0x1058b3c90&gt;"><pre class="notranslate"><code class="notranslate">In [8]: np.ndindex(*())
Out[8]: &lt;numpy.lib.index_tricks.ndindex at 0x1058b3910&gt;

In [9]: np.ndindex((1,2,3))
Out[9]: &lt;numpy.lib.index_tricks.ndindex at 0x1058b3c90&gt;
</code></pre></div>
<p dir="auto">but now they fail:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [4]: np.ndindex(*())
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/Volumes/Raptor/&lt;ipython-input-4-6cef0413cccb&gt; in &lt;module&gt;()
----&gt; 1 np.ndindex(*())

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
    534     &quot;&quot;&quot;
    535     def __init__(self, *shape):
--&gt; 536         x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
    537         self._it = _nx.nditer(x, flags=['multi_index'], order='C')
    538 

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
     26     if strides is not None:
     27         interface['strides'] = tuple(strides)
---&gt; 28     return np.asarray(DummyArray(interface, base=x))
     29 
     30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    322 
    323     &quot;&quot;&quot;
--&gt; 324     return array(a, dtype, copy=False, order=order)
    325 
    326 def asanyarray(a, dtype=None, order=None):

ValueError: __array_interface__ shape must be at least size 1

In [5]: np.ndindex((1,2,3))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/Volumes/Raptor/&lt;ipython-input-5-c1735c2d52d3&gt; in &lt;module&gt;()
----&gt; 1 np.ndindex((1,2,3))

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
    534     &quot;&quot;&quot;
    535     def __init__(self, *shape):
--&gt; 536         x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
    537         self._it = _nx.nditer(x, flags=['multi_index'], order='C')
    538 

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
     26     if strides is not None:
     27         interface['strides'] = tuple(strides)
---&gt; 28     return np.asarray(DummyArray(interface, base=x))
     29 
     30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    322 
    323     &quot;&quot;&quot;
--&gt; 324     return array(a, dtype, copy=False, order=order)
    325 
    326 def asanyarray(a, dtype=None, order=None):

TypeError: an integer is required"><pre class="notranslate"><code class="notranslate">In [4]: np.ndindex(*())
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/Volumes/Raptor/&lt;ipython-input-4-6cef0413cccb&gt; in &lt;module&gt;()
----&gt; 1 np.ndindex(*())

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
    534     """
    535     def __init__(self, *shape):
--&gt; 536         x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
    537         self._it = _nx.nditer(x, flags=['multi_index'], order='C')
    538 

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
     26     if strides is not None:
     27         interface['strides'] = tuple(strides)
---&gt; 28     return np.asarray(DummyArray(interface, base=x))
     29 
     30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    322 
    323     """
--&gt; 324     return array(a, dtype, copy=False, order=order)
    325 
    326 def asanyarray(a, dtype=None, order=None):

ValueError: __array_interface__ shape must be at least size 1

In [5]: np.ndindex((1,2,3))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/Volumes/Raptor/&lt;ipython-input-5-c1735c2d52d3&gt; in &lt;module&gt;()
----&gt; 1 np.ndindex((1,2,3))

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
    534     """
    535     def __init__(self, *shape):
--&gt; 536         x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
    537         self._it = _nx.nditer(x, flags=['multi_index'], order='C')
    538 

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
     26     if strides is not None:
     27         interface['strides'] = tuple(strides)
---&gt; 28     return np.asarray(DummyArray(interface, base=x))
     29 
     30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    322 
    323     """
--&gt; 324     return array(a, dtype, copy=False, order=order)
    325 
    326 def asanyarray(a, dtype=None, order=None):

TypeError: an integer is required
</code></pre></div>
<p dir="auto">so I just wanted to check that these changes were intentional? (I can easily update my code if needed).</p>