numpy.matmul()函数

调用方式:

numpy.matmul(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'matmul'>

各个参数意义

x1:输入数组1,不允许是标量
x2:输入数组2,不允许是标量
out:返回值,ndarray数组,(可选参数),记录作用后的结果
有返回值,记录矩阵的乘积,只有当x1x2均为一维数组时,才会得到一个标量
其他参数这里不做过多讨论,以后可能会补充说明。

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Wed Oct 21 10:00:45 2020

@author: 15025
"""

import numpy as np


class NumpyStudy:
    def matrixMultiplication(self):
        array1 = [[1, 2], [3, 4]]
        array2 = [[5, 6], [7, 8]]
        array_output1 = np.matmul(array1, array2)
        print("数组array_output1的值为: ")
        print(array_output1)
        

if __name__ == "__main__":
    main = NumpyStudy()
    main.matrixMultiplication()
"""
数组array_output1的值为: 
[[19 22]
 [43 50]]
"""
    

注意我们这里预先没有对array1array2进行np.array()数组处理,而是直接使用的list类型也是可以的。
这里我们进一步研究一下out参数。

# -*- coding: utf-8 -*-
"""
Created on Wed Oct 21 10:00:45 2020

@author: 15025
"""

import numpy as np


class NumpyStudy:
    def matrixMultiplication(self):
        array1 = [[1, 2], [3, 4]]
        array2 = [[5, 6], [7, 8]]
        array_output1 = np.zeros((2, 2), dtype=np.int32)
        np.matmul(array1, array2, out=array_output1)
        print("数组array_output1的值为: ")
        print(array_output1)
        

if __name__ == "__main__":
    main = NumpyStudy()
    main.matrixMultiplication()
"""
数组array_output1的值为: 
[[19 22]
 [43 50]]
"""

当我们设定out=array_output1时,我们还是需要预先对该函数进行初始化,比如这里的array_output1 = np.zeros((2, 2), dtype=np.int32),而且其尺寸必须与最后的乘积后得到的结果相同,所以意义不大。尽量避免使用。

猜你喜欢

转载自blog.csdn.net/u011699626/article/details/109205027
今日推荐