TypeError:“元组”对象无法解释为整数

时间:2018-06-28 17:13:50

标签: python random tuples

我有x0,它是一个float64(64,64)数组。每当我尝试这样做:

    delta = np.random.randn(x0.shape)

它给出了字幕错误。这是如此基本,以至于我全神贯注。我错过了什么?谢谢

完整的回溯如下:

Traceback (most recent call last):

  File "<ipython-input-31-dcd2365ed519>", line 1, in <module>
    delta = np.random.randn(x0.shape)

  File "mtrand.pyx", line 1420, in mtrand.RandomState.randn

  File "mtrand.pyx", line 1550, in mtrand.RandomState.standard_normal

  File "mtrand.pyx", line 167, in mtrand.cont0_array

TypeError: 'tuple' object cannot be interpreted as an integer

3 个答案:

答案 0 :(得分:6)

看起来np.random.randn()需要一个整数而不是一个元组: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randn.html 尝试np.random.randn(x0.shape[0], x0.shape[1])

答案 1 :(得分:6)

np.random.randn()需要整数参数,格式为randn(64,64)。您正在以np.random.randn()的形式提供randn((64,64))自变量,这不是预期的。相反,如果您要构建64x64的随机数组,则需要单独传递行数和列数,而不是作为元组传递。

答案 2 :(得分:2)

要调试此功能,建议您在尝试定义增量之前添加以下行:

    print(x0)
    print(type(x0))

x0是一个元组,但是您试图在np.random.randn函数中使用它,该函数仅接受整数作为参数。如果您需要一个多维的随机数数组(例如3x7x6数组),则可以使用np.random.randn(3, 7, 6)