函数作用:通常用来计算两个向量的外积。
函数调用方法:

numpy.outer(a, b, out=None)

各个参数意义:
a:第一个输入向量,向量维度为(M,1)
b:第二个输入向量。向量维度为(N,1)
out:设置结果的保存位置,通常使用默认值None,不需要做多余处理。
有返回值,返回一个维度为(M,N)ndarray数组。

代码如下:

import numpy as np


class NumpyStudy:
    @staticmethod
    def mainProgram():
        vector_a = np.array([1, 2, 3, 4, 5])
        vector_b = np.array([1, 2, 3, 4, 5])
        result = np.outer(vector_a, vector_b)
        print('向量a与向量b的外积为:')
        print(result)


if __name__ == "__main__":
    main = NumpyStudy()
    main.mainProgram()
"""
向量a与向量b的外积为:
[[ 1  2  3  4  5]
 [ 2  4  6  8 10]
 [ 3  6  9 12 15]
 [ 4  8 12 16 20]
 [ 5 10 15 20 25]]
"""

然而实际应用中这个函数并不实用,计算向量的外积我们可以通过数组切片来实现。

import numpy as np


class NumpyStudy:
    @staticmethod
    def mainProgram():
        vector_a = np.array([1, 2, 3, 4, 5])
        vector_b = np.array([1, 2, 3, 4, 5])
        result = vector_a * vector_b[:, None]
        print('向量a与向量b的外积为:')
        print(result)


if __name__ == "__main__":
    main = NumpyStudy()
    main.mainProgram()
"""
向量a与向量b的外积为:
[[ 1  2  3  4  5]
 [ 2  4  6  8 10]
 [ 3  6  9 12 15]
 [ 4  8 12 16 20]
 [ 5 10 15 20 25]]
"""

是不是数组切片yyds呢?

码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐