numpy中关于np.dot、np.outer、np.matmul、np.multipy、np.inner、np.outer与np.cross几个函数之间的区别

2.1、np.dot()函数
numpy.dot(a, b, out=None)两个数组的点积。

np.dot()计算规则:np.dot(a, b, out=None):

一、一维数组
np.dot(3, 4)
>>> 
12
np.dot([2, 3], [4, 4])
>>> 
20
二、二维数组
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.dot(a, b)
>>> 
array([[4, 1],
       [2, 2]])
三、n维数组
a = np.arange(6).reshape(1, 2, 3)
b = np.arange(6).reshape(2, 3, 1)

>>> 
array([[[0, 1, 2],
        [3, 4, 5]]])
b
>>> 
array([[[0],
        [1],
        [2]],

       [[3],
        [4],
        [5]]])
# 计算n维数组数组的点积
np.dot(a, b)
>>> 
array([[[[ 5],
         [14]],

        [[14],
         [50]]]])


2.2 numpy.outer()计算两个向量的外积
numpy.outer(a, b, out=None)计算两个向量的外积。

np.outer()表示的是两个向量相乘,拿第一个向量的元素分别与第二个向量所有元素相乘得到结果的一行。

典型范例:

import numpy as np

lr = np.outer(np.ones((5,)),np.linspace(-2,2,5))
lr
>>>
array([[-2., -1.,  0.,  1.,  2.],
       [-2., -1.,  0.,  1.,  2.],
       [-2., -1.,  0.,  1.,  2.],
       [-2., -1.,  0.,  1.,  2.],
       [-2., -1.,  0.,  1.,  2.]])
其中,
np.ones((5,))
>>>
array([1., 1., 1., 1., 1.])

np.linspace(-2,2,5)
>>>
array([ 2.,  1.,  0., -1., -2.])

im = np.outer(1j*np.linspace(2,-2,5),np.ones((5,)))
im
>>>
array([[0.+2.j, 0.+2.j, 0.+2.j, 0.+2.j, 0.+2.j],
       [0.+1.j, 0.+1.j, 0.+1.j, 0.+1.j, 0.+1.j],
       [0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
       [0.-1.j, 0.-1.j, 0.-1.j, 0.-1.j, 0.-1.j],
       [0.-2.j, 0.-2.j, 0.-2.j, 0.-2.j, 0.-2.j]])
其中,
1j*np.linspace(2,-2,5)    # 可将【1j】看做一个【有系数项的向量】,【*np.linspace(2,-2,5)】相当于改变该向量的【系数项】
>>>
array([ 0.+2.j,  0.+1.j,  0.+0.j, -0.-1.j, -0.-2.j])

grid = lr + im
grid
>>>
array([[-2.+2.j, -1.+2.j,  0.+2.j,  1.+2.j,  2.+2.j],
       [-2.+1.j, -1.+1.j,  0.+1.j,  1.+1.j,  2.+1.j],
       [-2.+0.j, -1.+0.j,  0.+0.j,  1.+0.j,  2.+0.j],
       [-2.-1.j, -1.-1.j,  0.-1.j,  1.-1.j,  2.-1.j],
       [-2.-2.j, -1.-2.j,  0.-2.j,  1.-2.j,  2.-2.j]])
# 使用字母”矢量“的示例:
np.outer(np.array(['a','b','c']), [1,2,3])
>>>
x = np.array(['a','b','c'], dtype=object)
x
>>>
array(['a', 'b', 'c'], dtype=object)  # 备注:np.array(['a','b','c'])输出:array(['a', 'b', 'c'], dtype='<U1')无法参与运算

np.outer(x, [1,2,3])
>>>
array([['a', 'aa', 'aaa'],
       ['b', 'bb', 'bbb'],
       ['c', 'cc', 'ccc']], dtype=object

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值