Python笔记04:Numpy向量

吴恩达大佬在深度学习课程里讲的很多Python技巧还是很受用的。

有的看似是向量的东西其实不是向量,而是一种秩为1的奇怪的东西:

import numpy as np

aa=np.array([1,2,3])

print(aa)
print(aa.shape)

print(aa.T)
print(aa.T.shape)

print(np.dot(aa,aa.T))
print(np.dot(aa.T,aa))

Output:

[1 2 3]
(3,)
[1 2 3]
(3,)
14
14

可以看到即使做转置操作也和原来完全一样。

这样写才是真正的向量:

bb=np.array([[1],[2],[3]])

print(bb)
print(bb.shape)

print(bb.T)
print(bb.T.shape)

print(np.dot(bb,bb.T))
print(np.dot(bb.T,bb))

Output:

[[1]
 [2]
 [3]]
(3, 1)
[[1 2 3]]
(1, 3)
[[1 2 3]
 [2 4 6]
 [3 6 9]]
[[14]]

这样就完全体现出了向量该有的特性。

a=np.random.randn(5) # 不要这么写!
b=np.random.randn(5,1) # 要这样写

用assert检查向量的格式:

assert aa.shape==(3,)

正常运行。

assert aa.shape==(3,1)

报错:

AssertionError                            Traceback (most recent call last)
<ipython-input-30-78c5b7bd4e75> in <module>
----> 1 assert aa.shape==(3,1)

AssertionError:

转换成正确的格式:

aa=aa.reshape(3,1)
print(aa)

Output:

[[1]
 [2]
 [3]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值