Python 更新numpy后,np.lib.stride\u.as\u stried会给出错误

Python 更新numpy后,np.lib.stride\u.as\u stried会给出错误,python,numpy,Python,Numpy,我将numpy从旧版本更新到1.12.0版本,不幸的是我没有检查哪个版本。 我有一个脚本,它在更新之前工作得非常好。它使用以下代码行: from numpy.lib.stride_tricks import as_strided as _ast raw_shp = _ast(raw, shape=sh, strides=stride).squeeze() 给出错误: File "/usr/local/lib/python2.7/dist-packages/numpy/lib/st

我将numpy从旧版本更新到1.12.0版本,不幸的是我没有检查哪个版本。 我有一个脚本,它在更新之前工作得非常好。它使用以下代码行:

from numpy.lib.stride_tricks import as_strided as _ast

    raw_shp = _ast(raw, shape=sh, strides=stride).squeeze()
给出错误:

  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/stride_tricks.py", line 102, in as_strided
      array = np.asarray(DummyArray(interface, base=x))
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 531, in asarray
    return array(a, dtype, copy=False, order=order)
TypeError: 'float' object cannot be interpreted as an index
ast或np.asarray中发生了什么变化以引起此错误?我可以做些什么来避免它


感谢您的任何提示

显然,较新的numpy版本在索引时更挑剔使用浮动。 将所有用于索引的浮点数转换为整数解决了这个问题 正如沃伦·韦克瑟所说:
确保sh中的所有值实际上都是整数,而不是带有整数值的浮点。要么修复sh的创建方式(推荐),要么执行类似shape=tuple的操作(int(i)表示sh中的i)

sh
的值是什么?它是(12501.02692,2,4)确保
sh
中的所有值实际上都是整数,而不是带整数值的浮点。要么修复
sh
的创建方式(推荐),要么执行类似
shape=tuple(int(i)表示sh中的i)
的操作。我怀疑
(125012692,2,4)
,由所有整数组成,可以正常工作。否:-(仍然是相同的错误消息)。。