Python Numpy重塑错误

时间:2017-08-28 20:57:19

标签: python numpy reshape

我在尝试重塑3D numpy数组时遇到了一个奇怪的错误。

数组(x)具有形状(6,10,300),我想将其重塑为(6,3000)。

我使用以下代码:

‎7e 2f 3a 4f 8f e8 fa 8a 57 30 ae ca 02 96 96 63 7e 98 6f 3f

我收到的错误是:

reshapedArray = np.reshape(x, (x.shape[0], x.shape[1]*x.shape[2]))

但是,如果我将x转换为列表,它可以工作:

TypeError: only integer scalar arrays can be converted to a scalar index

你知道为什么会这样吗?

提前致谢!

编辑:

这是我正在运行的代码并产生错误

x = x.tolist()
reshapedArray = np.reshape(x, (len(x), len(x[0])*len(x[0][0])))

1 个答案:

答案 0 :(得分:0)

只有当fetch(url, { credentials: 'same-origin' // or 'include' }); 的第二个参数的一个元素不是整数时才会发生异常,例如:

reshape

或者如果它是>>> x = np.ones((6, 10, 300)) >>> np.reshape(x, (np.array(x.shape[0], dtype=float), x.shape[1]*x.shape[2])) TypeError: only integer scalar arrays can be converted to a scalar index (给定编辑历史记录:这就是你的情况):

array

然而,它似乎与解决方法一起工作,这也使得意外错误输入更加困难:

>>> np.reshape(x, (x.shape[0], x.shape[1]*x[2]))
#         forgot to access the shape------^^^^
TypeError: only integer scalar arrays can be converted to a scalar index

如果您想知道>>> np.reshape(x, (x.shape[0], -1)) 文档解释它:

  

一个形状尺寸可以是-1。在这种情况下,该值是从数组长度和剩余维度推断出来的。