天天看点

Numpy中array与mat的运算

1、array的运算

1.1 代码及运算结果

import numpy as np
# array的运算
a = np.array([1, 2, 3])
b = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
           
print('这是array的*乘:\n', a*b)
           

这是array的*乘:

[[1 4 9]

[1 4 9]

[1 4 9]]

print('这是array的dot乘:\n', np.dot(a, b))
           

这是array的dot乘:

[ 6 12 18]

print('这是array的multiply乘:\n', np.multiply(a, b))
           

这是array的multiply乘:

[[1 4 9]

[1 4 9]

[1 4 9]]

1.2 小结

  • array的 * 乘根据广播原则将对应元素相乘
  • array的dot 乘为矩阵的乘法
  • array的multiply乘根据广播原则将对应元素相乘

2、mat的运算

2.1 代码及运算结果

# mat的运算
a = np.mat([1, 2, 3])
b = np.mat([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
           
print('这是mat的*乘:\n', a*b)
           

这是mat的*乘:

[[ 6 12 18]]

print('这是mat的dot乘:\n', np.dot(a, b))
           

这是mat的dot乘:

[[ 6 12 18]]

print('这是mat的multiply乘:\n', np.multiply(a, b))
           

这是mat的multiply乘:

[[1 4 9]

[1 4 9]

[1 4 9]]

2.2 小结

  • mat的 * 乘为矩阵的乘法
  • mat的dot 乘为矩阵的乘法
  • mat的multiply乘根据广播原则将对应元素相乘

3、总结

  • 无论array还是mat,multiply 均为根据广播原则将对应元素相乘的运算
  • 无论array还是mat,dot 均为矩阵的乘法,但是两者结果不完全相同(见上例)
  • array的 * 乘为对应元素相乘,但是mat的 * 乘为矩阵的乘法