数组在python中不可调用“'numpy.ndarray'对象不可调用”

我正在研究神经网络,当我尝试对两个 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


素胚勾勒不出你
浏览 319回答 2
2回答

慕村225694

看看random.shuffle(x[, random])的文档可选参数 random 是一个 0 参数函数,返回 [0.0, 1.0) 中的随机浮点数;默认情况下,这是函数 random()在您的情况下,您通过 train_labels,根据错误消息,它是 numpy.ndarray,而不是函数

千万里不及你

shuffle您可能想要使用两个已命名的函数,但它们都没有按您期望的方式工作。random.shuffle(x, random=None)x使用函数洗牌列表random。numpy.random.shuffle(x)打乱 NumPy 数组x。这两个函数一次只能打乱一个数组,但是你想打乱两个数组,而且你想一致地打乱它们。考虑构建一个熊猫系列,对系列进行混洗(“采样”),然后再次将其拆分为值和标签:import pandas as pdseries = pd.Series(train_images, index=train_labels)shuffled = series.sample(series.size)train_images_shuffled = shuffled.valuestrain_labels_shuffled = shuffled.index
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python