矩阵和numpy

作者: 我是上帝可爱多 | 来源:发表于2017-08-12 21:31 被阅读54次

1 什么是矩阵

数学上,一个m×n矩阵是一个由mn列元素排列成的矩形阵列。矩阵里的元素可以是数字符号或数学式。以下是一个由6个数字元素构成的2行3列的矩阵:

(1)矩阵加法

大小相同(行数列数都相同)的矩阵之间可以相互加减,具体是对每个位置上的元素做加减法.


(2)矩阵乘法

数乘:标量c与矩阵A的数乘:cA的每个元素是A的相应元素与c的乘积

标准乘法:两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。

矩阵的乘法满足结合律和对矩阵加法的分配律(左分配律和右分配律):

  • 结合律:(AB)C = A(BC)
  • 分配律:(A+B)C = AC + BC
(3)标记

将一些元素排列成若干行,每行放上相同数量的元素,就是一个矩阵。这里说的元素可以是数字,例如以下的矩阵:

一个矩阵A从左上角数起的第i行第j列上的元素称为第i,j项,在上述例子中A[4,3] = 7

(4)点乘

以Numpy为例,使用array时,运算符 * 用于计算数量积(点乘),函数 dot() 用于计算矢量积(叉乘),例子如

import numpy as np
 
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
 
print 'a * b = \n', a * b
print 'np.dot(a, b) = \n', np.dot(a, b)

运行结果为:
a * b = 
[[ 5 12]
 [21 32]]
np.dot(a, b) = 
[[19 22]
 [43 50]]

注意np.array生成的二维数组就相当于矩阵。

(5) 转置

下面附上一段matlab的转置给大家理解

>> a=rand(3)
a =
    0.8147    0.9134    0.2785
    0.9058    0.6324    0.5469
    0.1270    0.0975    0.9575
>> b=a'
b =
    0.8147    0.9058    0.1270
    0.9134    0.6324    0.0975
    0.2785    0.5469    0.9575

(6)逆矩阵
A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称BA的逆矩阵,而A则被称为可逆矩阵

验证两个矩阵互为逆矩阵


按照矩阵的乘法满足:AB = BA
故A,B互为逆矩阵。
若矩阵A是可逆的,则A的逆矩阵是唯一的。

(7)行列式

这一期我只简单介绍一下numpy

import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)   三行五列
>>> a.ndim
2   这是一个二维数组
>>> a.dtype.name
'int64'
>>> a.itemsize
8  int64  64/8 = 8  8位一个字节
>>> a.size
15
>>> type(a)
<type 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<type 'numpy.ndarray'>
  • ndarray.dtype
    an object describing the type of the elements in the array. One can create or specify dtype’s using standard Python types. Additionally NumPy provides types of its own. numpy.int32, numpy.int16, and numpy.float64 are some examples.

今天就讲到这里,都是基础大家要下去慢慢消化。

相关文章

  • Cupy的用处概述

    前提:传统的数组和矩阵都是通过numpy来设定,然后numpy来调用cpu计算!cupy的作用:数组和矩阵都是通过...

  • mat矩阵

    numpy的 mat矩阵属性和方法

  • 矩阵和numpy

    1 什么是矩阵 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式...

  • 零基础入门Python数据分析之numpy最强攻略

    本文的主要学习目标: 熟练的掌握 numpy 数组相关的运算; 熟练的使用 numpy 创建矩阵; 理解矩阵转置和...

  • 处理 NumPy 矩阵和 ufunc

    处理 NumPy 矩阵和 ufunc 创建矩阵 从其它矩阵创建矩阵 通用函数(ufunc) 通用函数的方法 数组除...

  • 2019-08-13

    NumPy - 矩阵库 NumPy 包包含一个 Matrix库numpy.matlib。此模块的函数返回矩阵而不是...

  • numpy矩阵和数组的区别

    numpy矩阵和数组的区别 numpy矩阵(matrix)是严格二维的,而numpy数组(ndarray)是N维 ...

  • Numpy 学习笔记

    numpy 笔记 入门基础 转化为矩阵 输出矩阵维度 输出形状 共有多少元素 创建numpy数组 创建0矩阵 创建...

  • Matrix01-04:numpy中的矩阵表示

    numpy中的matrix类 numpy提供了一个专门的矩阵处理模块:numpy.matlib。1、矩阵创建函数。...

  • 创建NumPy数组(和矩阵)

    numpy.zeros() 创建零数组或者零矩阵 numpy.ones() 获得全一的数组或者矩阵 numpy.f...

网友评论

    本文标题:矩阵和numpy

    本文链接:https://www.haomeiwen.com/subject/xpijrxtx.html