[numpy]matrix和array的乘和加

来源:互联网 发布:开源软件许可证类型 编辑:程序博客网 时间:2024/05/22 00:15

1. 对于数组array

  1. 就是对应位置的元素相乘:

    X1 = np.array([[1,2], [3, 4]])X2 = X1print X2*X1[[ 1  4] [ 9 16]]
  2. 就是对应位置的相加:

    X1 = np.array([[1,2], [3, 4]])X2 = X1print X2+X1[[2 4] [6 8]]

2. 对于矩阵matrix

  1. 就是矩阵的点乘:

    X1 = np.matrix([[1,2], [3, 4]])X2 = X1print X2*X1[[ 7 10] [15 22]]
  2. 有两种情况,第一种是X1与X2的大小一致,就是普通的矩阵相加,即对应位置相加:

    X1 = np.matrix([[1,2], [3, 4]])X2 = X1print X2+X1[[2 4] [6 8]]

    第二种情况是n*1的X1 + m*1的X2(或者反过来),就会得到n*m的矩阵:

    X1 = np.matrix([[1,2,3]])X2 = np.matrix([[1,2,3,4]]).Tprint X2+X1[[2 3 4] [3 4 5] [4 5 6] [5 6 7]]

3. 混用情况

在numpy中存在很多的matrix和array 运算符混用的情况,程序也能通过,但这样很不好,尽量按照以上原则使用。

如果2维的array想要进行矩阵的点乘运算,可以用np.dot(X1, X2)

如果matrix想要进行对应位置的乘,可以用np.multiply(X2,X1)

0 0