Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取涉及numpy数组的for循环错误_Python_Numpy - Fatal编程技术网

Python 获取涉及numpy数组的for循环错误

Python 获取涉及numpy数组的for循环错误,python,numpy,Python,Numpy,我在做一个游戏,我得到了一个错误:“索引器:只有整数、切片(:)、省略号(…)、numpy.newaxis(None)和整数或布尔数组是有效的索引。” 在下面的代码块中,play_game是一个返回字符串的函数,roll_dice是一个随机数组。基本上,我想把所有的字符串放到一个数组中,这样就可以放到total_游戏中。然而,我不能这样做,因为这个错误,我不知道它到底意味着什么。如果有人能澄清错误的含义,或者我如何修复这段代码,我将不胜感激 def game_会话(num_games=50):

我在做一个游戏,我得到了一个错误:“索引器:只有整数、切片(
)、省略号(
)、numpy.newaxis(
None
)和整数或布尔数组是有效的索引。”

在下面的代码块中,play_game是一个返回字符串的函数,roll_dice是一个随机数组。基本上,我想把所有的字符串放到一个数组中,这样就可以放到total_游戏中。然而,我不能这样做,因为这个错误,我不知道它到底意味着什么。如果有人能澄清错误的含义,或者我如何修复这段代码,我将不胜感激

def game_会话(num_games=50):
总博弈=np.0(num博弈)
对于total_游戏中的i:
游戏总数[i]=玩游戏(掷骰子())
返回全场比赛

.zero
创建一个浮点零数组(
0.0

当您在total_games中对i执行
操作时,
i
将始终为
0.0
,并且显然
total_games[0.0]
无法执行,原因是您收到了错误消息


我相信你想要的是
范围内的I(len(total_games))
,它将迭代
total_games
,即0,1,2,3,…。

。零创建一个浮点零数组(
0.0

当您在total_games
中对i执行
操作时,
i
将始终为
0.0
,并且显然
total_games[0.0]
无法执行,原因是您收到了错误消息


我相信你想要的是
范围内的I(len(total_games))
,它将迭代
total_games
,即0,1,2,3,…。

你不能将字符串输入
np.float64
类型的
np.array
,因为此数据结构只包含一种类型(默认情况下,如本例所示,
np.float64

您想要的是一个普通Python的
列表
,请尝试以下代码:

def game_session(num_games=50):
    total_games = []
    for _ in range(num_games):
        total_games.append(play_game(roll_dice()))
    return total_games
的答案也是正确的,您的代码存在多个问题

实际上,你可以(也可能应该)像这样做:

def game_session(num_games=50):
    return [play_game(roll_dice()) for _ in range(num_games)]

您不能将字符串输入到
np.float64
类型的
np.array
,因为此数据结构仅包含一种类型(默认情况下,如本例中所示
np.float64

您想要的是一个普通Python的
列表
,请尝试以下代码:

def game_session(num_games=50):
    total_games = []
    for _ in range(num_games):
        total_games.append(play_game(roll_dice()))
    return total_games
的答案也是正确的,您的代码存在多个问题

实际上,你可以(也可能应该)像这样做:

def game_session(num_games=50):
    return [play_game(roll_dice()) for _ in range(num_games)]

这样做可以修复它,但现在我得到一个错误:无法将字符串转换为float返回字符串在这种情况下,@Szymon Maszke提供的答案可能更符合您的需要。好的,是的。唯一的问题是它必须是参数num_games的大小,我不能遍历空列表。@Joey Jordan这就是您想要的吗?@SzymonMaszke yea抱歉,我应该澄清一下。我需要它是num_gamesDoing的大小这修复了它,但现在我得到一个错误:无法将字符串转换为float。这是因为play_game()返回字符串在这种情况下,@Szymon Maszke提供的答案可能更符合您的需要。好的,是的。唯一的问题是它必须是参数num_games的大小,我不能遍历空列表。@Joey Jordan这就是您要找的吗?@SzymonMaszke yea抱歉,我应该澄清一下。我需要它是num_games的大小