[Numpy]array与matrix在乘法上的不同

1 Numpy乘法的实现

运算 解释
* array:对应元素相乘,matrix:矩阵相乘
np.dot 矩阵相乘
np.multiply 对应元素相乘

2 上代码(array,matrix在*,dot,multiply上的异同)

2.1 定义array和matrix两个矩阵

import numpy as np

array = np.array([[1,2],[3,4]])
matrix = np.matrix('1 2;3 4')
print('array')
print(array)
print('matrix')
print(matrix)
print('-' * 20)

在这里插入图片描述

2.2 取array和matrix的第一行

print('array[0]:')
print(array[0])
print('matrix[0]:')
print(matrix[0])
print('-' * 20)

在这里插入图片描述
注:matrix只要取到的最终结果不是数字,就会保留二维矩阵的形式,但array不会,array[0]是一个行向量

2.3 取array和matrix的第一列

print('array[:,0]')
print(array[:,0])
print('matrix[:,0]')
print(matrix[:,0])
print('-' * 20)

在这里插入图片描述
array[:,0]–>返回的是一个行向量,对应array的第0列的列向量,而matrix[;,0]以矩阵的形式保存列向量

2.4 array进行乘法运算(*,dot,multiply)

print(array)
print(array * array)

在这里插入图片描述
在array中*为对应元素相乘
a r r a y = [ 1 2 3 4 ] array = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}
a r r a y a r r a y = [ 1 1 2 2 3 3 4 4 ] = [ 1 4 9 16 ] array * array = \begin{bmatrix} 1\cdot1 & 2\cdot2 \\ 3\cdot3 & 4\cdot4 \end{bmatrix} = \begin{bmatrix} 1 & 4 \\ 9 & 16 \end{bmatrix}

print(np.multiply(array,array))

注:此处np.multiply(array,array) 等价于 array * array

print(array * array[0])

在这里插入图片描述
a r r a y = [ 1 2 3 4 ] array = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix}
a r r a y [ 0 ] = [ 1 2 ] array[0] = \begin{bmatrix} 1 & 2 \end{bmatrix}
a r r a y a r r a y [ 0 ] = n p . m u l t i p l y ( a r r a y , a r r a y [ 0 ] ) = [ 1 1 2 2 3 1 4 2 ] = [ 1 4 3 8 ] array * array[0] = np.multiply(array,array[0]) = \begin{bmatrix} 1\cdot1 & 2\cdot2 \\ 3\cdot1 & 4\cdot2 \end{bmatrix}=\begin{bmatrix} 1 & 4 \\ 3 & 8 \end{bmatrix}

print(array * np.array([array[:,0]]).T)

在这里插入图片描述
a r r a y = [ 1 2 3 4 ] array = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix}
n p . a r r a y ( [ a r r a y [ : , 0 ] ] ) . T = [ 1 3 ] np.array([array[:,0]]).T = \begin{bmatrix} 1\\ 3\\ \end{bmatrix}
a r r a y n p . a r r a y ( [ a r r a y [ : , 0 ] ] ) . T = [ 1 1 2 1 3 3 4 3 ] = [ 1 2 9 12 ] array * np.array([array[:,0]]).T = \begin{bmatrix} 1\cdot1 & 2\cdot1 \\ 3\cdot3 & 4\cdot3 \\ \end{bmatrix} = \begin{bmatrix} 1 & 2 \\ 9 & 12 \end{bmatrix}

print(np.dot(array,array))

在这里插入图片描述
a r r a y = [ 1 2 3 4 ] array = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix}

n p . d o t ( a r r a y , a r r a y ) = [ 1 1 + 2 3 1 2 + 2 4 3 1 + 4 3 3 2 + 4 4 ] = [ 7 10 15 22 ] np.dot(array,array) = \begin{bmatrix} 1\cdot 1+2\cdot3 & 1\cdot2 + 2\cdot4\\ 3\cdot1 + 4\cdot3 & 3\cdot2 + 4\cdot4 \end{bmatrix} = \begin{bmatrix} 7 & 10 \\ 15 & 22 \end{bmatrix}

扫描二维码关注公众号,回复: 11413843 查看本文章

2.5 matrix进行乘法运算(*,dot,multiply)

print(matrix * matrix)
print(np.dot(matrix,matrix))

m a t r i x = [ 1 2 3 4 ] matrix = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix}
n p . d o t ( m a t r i x , m a t r i x ) = m a t r i x m a t r i x = [ 1 1 + 2 3 1 2 + 2 4 3 1 + 4 3 3 2 + 4 4 ] = [ 7 10 15 22 ] np.dot(matrix ,matrix ) = matrix * matrix = \begin{bmatrix} 1\cdot 1+2\cdot3 & 1\cdot2 + 2\cdot4\\ 3\cdot1 + 4\cdot3 & 3\cdot2 + 4\cdot4 \end{bmatrix} = \begin{bmatrix} 7 & 10 \\ 15 & 22 \end{bmatrix}

print(
	np.multiply(matrix  matrix)
)

m a t r i x = [ 1 2 3 4 ] matrix = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ \end{bmatrix}
n p . m u l t i p l y ( m a t r i x , m a t r i x ) = [ 1 1 2 2 3 3 4 4 ] = [ 1 4 9 16 ] np.multiply(matrix ,matrix )= \begin{bmatrix} 1\cdot1 & 2\cdot2 \\ 3\cdot3 & 4\cdot4 \end{bmatrix} = \begin{bmatrix} 1 & 4 \\ 9 & 16 \end{bmatrix}

猜你喜欢

转载自blog.csdn.net/kzl_knight/article/details/103297168