【问题标题】:array is not callable in python "'numpy.ndarray' object is not callable"数组在python中不可调用“'numpy.ndarray'对象不可调用”
【发布时间】:2018-12-08 08:08:39
【问题描述】:

我正在研究一个神经网络,当我尝试对两个 numpy.ndarray 进行洗牌时,我得到了这个错误。我尝试重新检查 shuffle 函数格式,但找不到任何错误。请帮忙

train_images,train_labels = shuffle(train_images,train_labels)
TypeError                                 
Traceback (most recent call last)
<ipython-input-8-b3f4173331ac> in <module>
 18     print("Training the Network")
 19     for i in range(epoch):
 20     --> train_images,train_labels = shuffle(train_images,train_labels)
 21         for offset in range (0,no_eg,batch_size):
 22             end = offset+batch_size

/usr/lib/python3.5/random.py in shuffle(self, x, random)
275             for i in reversed(range(1, len(x))):
276                 # pick an element in x[:i+1] with which to exchange x[i]
277            -->  j = _int(random() * (i+1))
278                 x[i], x[j] = x[j], x[i]
279 

TypeError: 'numpy.ndarray' object is not callabl

谢谢

【问题讨论】:

    标签: python numpy-ndarray


    【解决方案1】:

    查看random.shuffle(x[, random])的文档

    可选参数 random 是一个 0 参数函数,返回一个 [0.0, 1.0) 中的随机浮点数;默认情况下,这是函数 random()

    在您的情况下,您传递了 train_labels,根据错误消息,它是 numpy.ndarray,而不是函数

    【讨论】:

      【解决方案2】:

      您可能想使用两个名为 shuffle 的函数,但它们都没有按您期望的方式工作。

      random.shuffle(x, random=None) 使用函数random 洗牌列表x

      numpy.random.shuffle(x) 打乱 NumPy 数组 x

      这两个函数一次只能打乱一个数组,但是你想打乱两个数组,并且你想要一致地打乱它们。考虑构建一个熊猫系列,对系列进行洗牌(“采样”),然后再次将其拆分为值和标签:

      import pandas as pd
      series = pd.Series(train_images, index=train_labels)
      shuffled = series.sample(series.size)
      train_images_shuffled = shuffled.values
      train_labels_shuffled = shuffled.index
      

      【讨论】:

        猜你喜欢
        • 2019-04-07
        • 2021-12-23
        • 1970-01-01
        • 2019-09-04
        • 2021-06-11
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多