python中如何用序列(list())转化为矩阵(int())

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/evolone/article/details/79109565

今天练习写python代码时,遇到一个有趣的写法:

def relu_fun(x):
    x[x<0]=0
    return x

结合上下文发现x是矩阵,猜测函数功能是根据x的值若小于0,则对应位的x就置为0,否则直接返回原来x的值。

想验证函数功能是否与自己的猜测相同,于是就自己去尝试添加激励。

x = [[-2, -1, 2], [1, 2 ,-1]]  
print(relu_fun(x))

然后就报错!!
TypeError: unorderable types: list() < int()
好吧,类型错误。
这个错误对应的代码是:x<0
也就是说X在这里是list类型的。
去查阅资料后,发现自己错认为x = [[-2, -1, 2], [1, 2 ,-1]] 就是矩阵类型,其实不是,这只是list类型。
继续找矩阵类型,废了一些时间却没有找到。
偶然在网页中见到一个函数np.mat(),好奇之下去探究,发现这个函数就能将list转化为矩阵。
于是修改激励代码如下:

x = [[-2, -1, 2], [1, 2 ,-1]]  # list类型
x = np.mat(x)  # 将list类型的x转化为矩阵x
print(relu_fun(x))

这次输出就对了。

[[0 0 2]
 [1 2 0]]

猜你喜欢

转载自blog.csdn.net/evolone/article/details/79109565
今日推荐