我正在研究神经网络,当我尝试对两个 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
2 回答
慕村225694
TA贡献1880条经验 获得超4个赞
看看random.shuffle(x[, random])的文档
可选参数 random 是一个 0 参数函数,返回 [0.0, 1.0) 中的随机浮点数;默认情况下,这是函数 random()
在您的情况下,您通过 train_labels,根据错误消息,它是 numpy.ndarray,而不是函数
千万里不及你
TA贡献1784条经验 获得超9个赞
shuffle您可能想要使用两个已命名的函数,但它们都没有按您期望的方式工作。
random.shuffle(x, random=None)x使用函数洗牌列表random。
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
添加回答
举报
0/150
提交
取消