向量的生成
>>> import numpy as np
>>> A = np.array([1, 2, 3, 4])
>>> print(A)
[1 2 3 4]
>>> np.ndim(A)
1
>>> A.shape
(4,)
>>> A.shape[0]
4
一维数组又称为向量,使用ndim()可以获取到向量的维数1。
shape可以获取到各个维度的长度,这里只有一维,所以长度等于向量的长度4
矩阵的生成
矩阵的生成与向量类似:
>>> B = np.array([[1,2], [3,4], [5,6]])
>>> print(B)
[[1 2]
[3 4]
[5 6]]
>>> np.ndim(B)
2
>>> B.shape
(3, 2)
我们发现,矩阵就是把一个个向量叠放在一起。
使用ndim()可以获取到向量的维数2。
shape可以获取到各个维度的长度,返回的3,2表示有三行,两列
矩阵的内积
内积的计算不再是建单的对应位置的元素相乘了,而是:
A(i, *) * B(*, j) = C(i,j)
可以使用numpy.dot(A, B)进行计算:
>>> A = np.array([[1,2], [3,4]])
>>> A.shape
(2, 2)
>>> B = np.array([[5,6], [7,8]])
>>> B.shape
(2, 2)
>>> np.dot(A, B)
array([[19, 22],
[43, 50]])
感知机中的内积计算
我们看到输入是两个,x1和x2
对应的权重矩阵为2*3,表示会产生3个输出。
>>> X = np.array([1, 2])
>>> X.shape
(2,)
>>> W = np.array([[1, 3, 5], [2, 4, 6]])
>>> print(W)
[[1 3 5]
[2 4 6]]
>>> W.shape
(2, 3)
>>> Y = np.dot(X, W)
>>> print(Y)
[ 5 11 17]