如何摆脱错误“'浮动'对象没有属性'exp'”?

时间:2017-05-01 07:37:35

标签: python python-3.x numpy

我创建了一个列表来存储这样的信息:

import numpy as np

moves = [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4)]

wins = [i for i in range(2 * len(moves))]
playout_number = [23 for i in range(2 * len(moves))]

data = [list(map(lambda i: moves[i] if divmod(i, len(moves))[0] != 1 else moves[divmod(i, len(moves))[1]],
                       [i for i in range(2 * len(moves))])),
    list(map(lambda i: 1 if i >= len(moves) else 2,
                       [i for i in range(2 * len(moves))])),
    wins,
    playout_number
    ]
table = np.asarray(data)
player1_info = table[:, np.where(table[1, :] == 1)[0].tolist()]

代码在这里工作得很好,但是当我添加下面的代码时:

b = np.divide(player1_info[2, :], player1_info[3, :]).reshape(1, player1.shape[1])
print(np.exp(b))

它给出了错误:'float'对象没有属性'exp'。

如何重写代码以应对错误?

1 个答案:

答案 0 :(得分:3)

我这样使用b = np.divide(player1_info[2, :], player1_info[3, :]) b = np.float64(b) print(np.exp(b))

table[:, np.where(table[1, :] == 1)[0].tolist()]

感谢@Eric我将table[:, table[1, :] == 2]简单地更改为np.exp
错误没有出现,它给出了正确的答案 我认为列表元素不为{{1}}所知,也无法计算。