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

今天练习写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]]
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值